Databinding
1.开启支持
android {
dataBinding {
enabled = true
}
}
2.打开布局文件,选中根布局的 ViewGroup,按住 Alt + 回车键,点击 “Convert to data binding layout”,就可以生成 DataBinding 需要的布局规则
3.在相关页面DataBindingUtil导入布局
相关符号
1.字符串拼接 ``
相关文档
1.https://www.jianshu.com/p/bd9016418af2
2.https://www.jianshu.com/p/70316eb4e0f8
示例
点击事件
1.<variable
name="clickListener"
type="android.view.View.OnClickListener" />
2.使用 android:onClick="@{clickListener}"
3.java代码里 databinding.setClickListener(this);
4.第二步也可调具体方法
点击事件02
1.<variable
name="clickUtils"
type="com.bogokj.live.appview.main.LiveMainMeView.ClickClass" />
2. <RelativeLayout
android:id="@+id/rl_accout"
style="@style/fra_tab_me_btn"
android:onClick="@{() -> clickUtils.clickRlAccout()}">
2-1.也可 android:onClick="@{clickUtils::clickRlAccout}"
3.代码中 databinding.setClickUtils(new ClickClass());
跳转方法
1.导包 <import type="com.bugu.douyin.utils.DataBingUtils" />
2.调用 android:visibility="@{DataBingUtils.isOne(video.is_live)==1?view.VISIBLE:view.GONE}"
3.逻辑 public static int isOne(String str) {
return CuckooStringUtils.toInt(str);
}
跳转方法(注解)
1.方法
@BindingAdapter({"imageUrl"})
public static void loadImage(ImageView imageView, String url) {
GlideUtils.loadNetImgToView(url, imageView);
}
2.调用
app:imageUrl="@{video.headpic}"
问题
include布局获取数据为null
1. <include
android:id="@+id/include_accompany_bottom"
layout="@layout/view_accompany_home_bottom_ll"
app:userInfo='@{userInfo}' />
2. <data>
<variable
name="userInfo"
type="com.buguniaokj.peiwan.json.AccompanyHomeBean" />
</data>
3.点击事件也要 根bing.inicudebind.setOnClick
Could not find method XX
1.一般情况下可能为为包裹@{}
2.方法的参数有没有传递
view must have a tag
1. View rootView = getActivity().getLayoutInflater().inflate(R.layout.frag_live_new_tab_me_black, null, false);
2.databinding = DataBindingUtil.bind(rootView);
3.setContentView(rootView);
4.通过以上方法绑定数据
设置onClick 调用方法后无反应
方法调用的哪个类要在activity中new出来并设置
databinding.setClickUtils(new ClickClass());
网友评论