Cannot find the setter for attribute with parameter

前端 未结 7 2187
轮回少年
轮回少年 2020-12-18 18:52

I am working on DataBinding with BindingAdapter. Here is my custom method.

@BindingAdapter(\"{bind:fadevisible}\")
public static vo         


        
7条回答
  •  伪装坚强ぢ
    2020-12-18 19:11

    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.

提交回复
热议问题