I am working on DataBinding
with BindingAdapter
. Here is my custom method.
@BindingAdapter(\"{bind:fadevisible}\")
public static vo
I had this problem with binding to ImageView
and unlike your case, the definition of my binding adapter was correct but still, the IDE kept giving me this error message. After spending many hours on searching for the cause, I figured that the namespace that I use in xml
layout file needs to be exactly what I declared in @BindingAdapter
.
So, if my xml is like below:
Then my binding method should be as below:
@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);
}
}
Note that binding method annotation indicates the namespace in it , i.e. @BindingAdapter({"app:image_url"})
exactly as it is used in layout file app:image_url="@{item.logoUrl}"
So unlike what is said in most tutorials, don't use @BindingAdapter({"bind:image_url"})
in your binding method and app:image_url="@{item.logoUrl}"
in your xml
file.