大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
BindingAdapter用来设置布局中View的自定义属性,当使用该属性时,可以自定义其行为。
创新互联专注于六盘水网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供六盘水营销型网站建设,六盘水网站制作、六盘水网页设计、六盘水网站官网定制、微信平台小程序开发服务,打造六盘水网络公司原创品牌,更为您提供六盘水网站排名全网营销落地服务。
下面是一个简单的例子:
@BindingAdapter("android:bufferType")
public static void setBufferType(TextView view, TextView.BufferType bufferType) {
view.setText(view.getText(), bufferType);
}
当一个方法加上@BindingAdapter注解后,就定义了一个BindingAdapter,注意方法的第一个参数是需要绑定到的View,第二个参数是绑定的属性值。
当定义完成后,此时我们就可以在布局的View中使用该属性,举例如下:
当TextView中加入了android:bufferType="normal"后,setBufferType()方法就会被调用。
当自定义其它一些属性时,也遵循一样的规则。
由于BindingAdapter的特性,我们就可以为ImageView自定义一个BindingAdapter,从而大幅简化图片加载的过程。
第一步,我们先新建一个ImageBindingAdapter的类,图片相关的BindingAdapter可以都定义在这个类里面:
public class ImageBindingAdapter {
@BindingAdapter("imageUrl")
public static void bindImageUrl(ImageView view, String imageUrl){
RequestOptions options =
new RequestOptions()
.centerCrop()
.dontAnimate();
Glide.with(view)
.load(imageUrl)
.apply(options)
.into(view);
}
}
定义好后,我们就可以直接在布局中使用这个属性了:
仅仅简单的一行代码,就可以进行网络图片的加载了,是不是感觉这个世界简单了很多?
除了这种单个参数的BindingAdapter,它也支持多个参数,这也是BindingAdapter强大的地方。
使用BindingAdapter可以大大简化一些重复代码,本文主要介绍了加载图片上的使用,你可以举一反三,用在更多的场景中使用,比如加载列表的数据等,这样做以后也可以使您的代码更加清晰高效。