- 启动
android {
dataBinding {
enabled = true
}
}
- 在原有的Layout文件中添加layout的根节点。
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<import type="android.view.View"></import>
<variable
name="gruopBean"
type="xxx.Group"></variable>
</data>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.CardView>
</layout>
- 在layout节点下添加data节点,然后添加model,也可以做静态导入,String,View等。
<data>
<import type="android.view.View"></import>
<variable
name="gruopBean"
type="xxx.Group"></variable>
</data>
- 书写表达式。
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="@{gruopBean.title}" />
- 给view设置binding。
ViewDataBinding inflate = DataBindingUtil.bind(LayoutInflater.from(viewGroup.getContext()).inflate(getLayoutId(i), viewGroup, false));
- 给binding设置数据。
binding.setVariable(1,data);
- bindingAdapter
public class DataBindingAdapter {
@BindingAdapter("android:src")
public static void setSrc(ImageView imageView, String url) {
Picasso.get().load(url).into(imageView);
}
}
主要用来重写属性。自定义属性也可以。
@BindingAdapter("app:setOriginalHeight")
public static void setHeight(RadioImageView imageView, int height) {
imageView.setOriginalHeight(height);
}
网友评论