databing BindingAdapter 的简单使用及踩坑经历

最近项目中使用到了BindingAdapter   下面来来看

既然用到了,配置的东西就不说了。首先建一个类

public class TemplateBindingAdapter {

    @BindingAdapter({"url"})
    public static void loadImage(ImageView view, List entity) {
        if (entity != null) {
            Glide.with(view.getContext()).load(entity.get(0).Url + "?x-oss-process=video/snapshot,t_0100,f_jpg,w_0,h_0,m_fast,ar_auto").into(view);
        }
    }

    @BindingAdapter(value = {"tagOne","tag_index"},requiredAll = false)
    public static void taskTagOne(TextView view, List tags,String tag_index) {
        if (tags != null) {
            view.setVisibility(View.VISIBLE);
            if (tags.size() > 0) {
                view.setText(tags.get(0));
                Log.e("tag",tag_index);
            } else {
                view.setVisibility(View.GONE);
            }
        }
    }
}

ImageVIew的实现

首先来看loadImage 上面标记的url  在xml中这样用

前面的bind  可以自行设置   通过url 的设置 调取上面的loadImage方法  实现图片的加载,相当于url和loadImage进行了绑定。第一个参数为ImageVIew自身,第二个为需要传递的参数。

TextView的实现

这里面只是简单的举个例子

传递两个参数的时候  可以如上面的taskTagOne方式来写,默认为需要全部传递,可以自行设置,是否需要传递全部参数。

 

参照taskTagOne来看  传递了两个参数 一个是list参数,另一个是string类型参数,这里需要注意的是 tag_index  因为传递的是字符串类型,所以,外层要用单引号  ,然后里面的字符串是双引号  我就是在这里面卡了很久。后来才知道的。不过好低级的错误。还是得看文档啊!!

你可能感兴趣的:(databinding)