Android DtataBinding 在自定义View中使用避坑

Android Studio Dolphin 版本环境下

使用: DataBindingUtil

//第一种写法
        ViewDataBinding inflate = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.layout_edit_text, this, true);
//第二种写法,百度上搜索 DtataBinding 在自定义View使用 会找到下面写法
View view = inflate(context, R.layout.layout_edit_text,this);
LayoutEditTextBinding  binding = DataBindingUtil.bind(view);
首先上面两种写法都存在预览不了,特别是第二种,会提示View is not a binding layout,运行会提示,下面是百度出来解决办法
//加上这一句,tag内容和上面的tag一样就可以了
view.setTag("layout/layout_edit_text_0");

运行可以运行,但是预览会出问题,报错如下dsc

使用:View view = inflate(context, R.layout.layout_edit_text,this);

预览可以正常预览、但是无法运行、报错如下

zxc

直接提示类型错误、好家伙、直呼好家伙。

最后的下下策,自定义view中不使用DataBinding,用最原始方法

预览正常、运行也正常。

有无好心人告知一下,还有啥其他方法

最后修改:2022 年 12 月 05 日
如果觉得我的文章对你有用,请随意赞赏