未知数据绑定属性:onLongClick - 属性存在且有效

4 android android-databinding

在我的数据绑定布局中,我通过以下方式设置了长按侦听器:

android:onLongClick="@{ ..binding expression.. }"
Run Code Online (Sandbox Code Playgroud)

代码按预期运行,但该android:onLongClick属性在 xml 文件中被标记为“未知”。此外,它没有自动完成功能。

此属性的绑定适配器包含在 中的数据绑定库中ViewBindingAdapter.java

Bah*_*man 6

正如这里所说您可以使用:android:onLongClick="@{() -> handler.onLongClicked()}"

但是如果你想删除警告,你可以使用下面的代码而不是上面的代码:

app:onLongClickListener="@{() -> handler.onLongClicked()}"

如果使用app:onLongClickListener数据绑定会setOnLongClickListenerView类中找到并使用该方法

onLongClickListener和之间有区别onLongClick:我们在视图中调用了一个方法,setOnLongClickListener但我们没有这样的方法:setOnLongClick并且当您atr在数据绑定中使用具有数据绑定之类方法的属性时,setAtr将自动查找并使用该方法,不需要任何适配器。这样onLongClickListener并不需要任何适配器(如果有的话,将被用来代替转接器setOnLongClickListener),但是onLongClick总是需要适配器。