我正在尝试使用数据绑定到我现有的项目。作为其中的一部分,我最初试图摆脱所有findViewById()方法。
现在的问题是,我的布局如下: -
<merge >
<include
android:id="@+id/my_login_process_view"
layout="@layout/content_my_message_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</merge>
将android绑定添加到此布局后(将布局添加为父标记),它会抛出错误,如下所示。
数据绑定不支持include作为合并元素的直接子元素
我已关注Android官方指南Android data binding。
我只是试图摆脱上面布局文件的findViewById。
任何建议将不胜感激。感谢
答案 0 :(得分:2)
您提供的链接显然表示不支持。
数据绑定不支持包含为合并的直接子项 元件。例如,不支持以下布局:
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:bind="http://schemas.android.com/apk/res-auto"> <data> <variable name="user" type="com.example.User"/> </data> <merge> <include layout="@layout/name" bind:user="@{user}"/> <include layout="@layout/contact" bind:user="@{user}"/> </merge> </layout>
根据官方文档,它的工作原理如下代码
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bind="http://schemas.android.com/apk/res-auto">
<data>
<variable name="user" type="com.example.User"/>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/name"
bind:user="@{user}"/>
<include layout="@layout/contact"
bind:user="@{user}"/>
</LinearLayout>
</layout>