Android自定义组合控件ViewGroup使用Databinding的坑

封装一个公共的BaseConstraintLayout以便今后在开发中提升效率,然而遇到了个坑,使用databinding情况一般都是在adapter,activity,fragment中,之前在项目中尝试了一下extends LinearLayout 使用databinding,然而一直没有奏效

mBinding = DataBindingUtil.inflate(LayoutInflater.from(context), resId,this,false);

项目运行起来,毫无作用,也不报错,再试!!!!

View view = LayoutInflater.from(context).inflate(resId,this); mBinding = DataBindingUtil.bind(view);

直接抛异常,哎哟WC,什么情况,查看源代码,进入DataBindingUtil,搜索关键字"View is not a binding layout"发现每个layout会有一个tag,ToT


但是呢,随手设置了tag也不生效,查看databinding源码后,运行时生成如下的tag



So:

View view = LayoutInflater.from(context).inflate(resId,this);

view.setTag("layout/" + getLayoutResIdName() +"_0");

mBinding = DataBindingUtil.bind(view);

end,完美实现

附:github地址

你可能感兴趣的:(Android自定义组合控件ViewGroup使用Databinding的坑)