1.配置
在build.grade中
dataBinding {
enabled = true
}
在布局中
<layout>
</layout>
2.使用
public class Bean extends BaseObservable{
private String name;
private Boolean isBuy;
private String url;
}
public class BindUtils {
@BindingAdapter("imageUrl"(在布局中用到的属性))
public static void showImageUrl(ImageView imageView, String url){
Glide.with(imageView.getContext().getApplicationContext()).load(url).into(imageView);
}
}
<layout
xmlns:app="http://schemas.android.com/apk/res-auto">
<data class="自定义databingding名">
//相当于Bean对象的引用
<variable name="bean "
//指定Bean的路径
type="com.android.example.Bean "/>
</data>
<LinearLayout …>
<TextView android:text="@{bean .name}"/>
<TextView android:visibility="@{bean.isBUy ? View.VISIBLE :View.GONE}"
//需要用到双引号的时候,外层的双引号改成单引号。
android:text='@{bean.idBuy ? "买" : "不买"}'
/>
<ImageView app:imageUrl(在BindUtils中定义的属性)="@{bean.url}"/>
</LinearLayout>
</layout>
遇到相同的类名
使用 alias 设置别名
<data>
<import type = "com.android.example.Bean" alias = Bean>
<import type = "com.android.feng.example.Bean" alias = mBean>
<variable name="bean " type="Bean "/>
<variable name="mbean " type="mBean "/>
</data>