以下内容假设读者对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名称都是驼峰写法。