Rav*_*avi 14 data-binding android android-databinding
我的工作DataBinding有BindingAdapter.这是我的自定义方法.
@BindingAdapter("{bind:fadevisible}")
public static void setFadeVisible(LinearLayout view, int visible) {
Log.e("Bindings", "setFadeVisible: ");
}
Run Code Online (Sandbox Code Playgroud)
在xml文件中,我称之为
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:fadevisible="@{1}"/>
Run Code Online (Sandbox Code Playgroud)
但它显示错误
错误:任务':app:compileDebugJavaWithJavac'的执行失败.java.lang.RuntimeException:发现数据绑定错误.****/数据绑定错误****消息:在android.widget.LinearLayout上找不到参数类型为int的属性'app:fadevisible'的setter.file:\ app\src\main\res-main\layout\activity_detail.xml loc:236:31 - 236:54****\data binding error****
我已经检查了这个和这个帖子,但不知怎的,它没有帮助我,因为你可以看到我int从xml 传递,并且BindingAdapter我也提到LinearLayout了int有价值.
即使我有另一种方法,只是参数不同,工作正常
@BindingAdapter({"bind:image_round"})
public static void loadRoundImage(ImageView imageView, String url)
Run Code Online (Sandbox Code Playgroud)
tyn*_*ynn 11
你的@BindingAdapter定义对我来说有点奇怪
@BindingAdapter("{bind:fadevisible}")
Run Code Online (Sandbox Code Playgroud)
这不一样
@BindingAdapter({"bind:fadevisible"})
Run Code Online (Sandbox Code Playgroud)
要么
@BindingAdapter("bind:fadevisible")
Run Code Online (Sandbox Code Playgroud)
哪个应该工作得很好.
Mer*_*rka 11
我在绑定时遇到了这个问题,ImageView与您的情况不同,我的绑定适配器的定义是正确的,但 IDE 仍然不断给我这个错误消息。在花了很多时间寻找原因之后,我发现我在xml布局文件中使用的命名空间需要与我在@BindingAdapter.
所以,如果我的 xml 如下所示:
<ImageView
android:id="@+id/logo"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_alignParentRight="true"
android:layout_marginRight="16dp"
android:layout_marginTop="16dp"
app:image_url="@{item.logoUrl}"
/>
Run Code Online (Sandbox Code Playgroud)
那么我的绑定方法应该如下:
@BindingAdapter({"app:image_url"})
public static void loadImage(ImageView view, String logoUrl) {
if (logoUrl == null) {
view.setImageResource(R.drawable.ic_place_holder);
} else {
Glide.with(getContext()).load(logoUrl).crossFade().into(view);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,绑定方法注释指示其中的命名空间,即@BindingAdapter({"app:image_url"})与布局文件中使用的完全相同。app:image_url="@{item.logoUrl}"
所以不像什么是最教程说, 不要用 @BindingAdapter({"bind:image_url"})你绑定的方法和app:image_url="@{item.logoUrl}"你的xml文件。
| 归档时间: |
|
| 查看次数: |
25525 次 |
| 最近记录: |