以下内容假设读者对Android databinding已经有了一定的基础使用了解(databinding官方教程)。
正文:
产生此问题的原因是布局文件中的include标签定义的id属性名称没有包含在跟其对应的layout属性关联的布局文件名称中【id和布局名称可以相同】,如下用例所示:
1)错误样例:
<include
android:id="@+id/in_slave"
layout="@layout/activity_fellow"
app:mvm="@{mvm}" />
问题原因:这里的id名称in_slave没有包含在layout文件名称activity_fellow中;
2)正确使用样例(可以正常在activity/fragment中通过binding引用):
<include
android:id="@+id/in_master"
layout="@layout/fragment_main_master_new" />
in_master包含在fragment_main_master_new中。
在activity/fragment中的使用:binding.inMaster.[fragment_main_master_new布局文件中的组件id名称],这里引用的id名称都是驼峰写法。


本文详细解释了在Android DataBinding中,`include`标签的`id`属性应如何正确设置,以确保与`layout`属性关联的布局文件名称相匹配。错误示例展示了当`id`名称不包含在`layout`文件名中时可能出现的问题,而正确示例则演示了如何避免这种问题,使得在Activity或Fragment中能够正确引用`include`内的组件。博客还提及了一个没有使用`id`的`include`官方用例。
1465

被折叠的 条评论
为什么被折叠?



