其他
主要是注解方式,比如@BindingAdapter;@BindingMethods
@BindingAdapter
使用例子
public class ImageBindingAdapter {
/**
* 按照之前的理解,binding替代了(xml+model)
* 这里,使用BindingAdapter注解了两个属性,
* 意思就是,当在view中遇到这两个属性的时候,
* 会执行下面的方法
*
* @param view
* @param url
* @param drawable
*/
@BindingAdapter({"app:imageUrl", "app:placeholder"})
public static void loadImageFromUrl(ImageView view,
String url,
Drawable drawable) {
Glide.with(view.getContext())
.load(url)
.placeholder(drawable)
.into(view);
}
}
xml中使用:
<ImageView
android:id="@+id/iv"
android:layout_width="200dp"
android:layout_height="200dp"
app:imageUrl="@{image.url}"
app:placeholder="@{@drawable/ic_launcher}"/>
个人使用的时候遇到一个问题,@{@drawable/…}貌似只认drawable,不认mipmap?
@BindingMethods
根据红线部分,发现有这个属性tint,那么就找对应的方法