当前位置:   article > 正文

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

view is not a binding layout

封装一个公共的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);

d5a76d0ef52b

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

d5a76d0ef52b

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

d5a76d0ef52b

So:

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

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

mBinding = DataBindingUtil.bind(view);

end,完美实现

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/320731
推荐阅读
相关标签
  

闽ICP备14008679号