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

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

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

public class TemplateBindingAdapter {

    @BindingAdapter({"url"})
    public static void loadImage(ImageView view, List<FileEntity> 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<String> 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中这样用

<ImageView
                    android:id="@+id/iv_video"
                    android:layout_width="match_parent"
                    android:layout_height="250px"
                    android:layout_below="@id/iv_template_video"
                    android:layout_marginTop="10px"
                    android:scaleType="centerCrop"
                    bind:url="@{taskDetail.files}" />

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

TextView的实现

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

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

 <TextView
                    android:id="@+id/tag_one"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="@color/white"
                    android:textSize="24px"
                    app:tagOne="@{taskDetail.tags}"
                    app:tag_index='@{"666666666"}'
                    tools:text="好习惯培养" />

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值