Привязка данных не поддерживает включение в качестве прямого дочернего элемента элемента слияния.

Я пытаюсь использовать привязку данных к моему существующему проекту. В рамках этого сначала я пытаюсь избавиться от всех методов 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 к этому макету (добавление макета в качестве родительского тега) возникает ошибка, как показано ниже.

Привязка данных не поддерживает включение в качестве прямого дочернего элемента элемента слияния

Я следовал официальному руководству Android по привязке данных Android.

Я просто пытаюсь избавиться от findViewById для вышеуказанного файла макета.

Мы ценим любые предложения. Спасибо


person Ramesh Pasupuleti    schedule 07.08.2017    source источник
comment
что вы хотите объединить? Я вижу только один макет внутри слияния.   -  person ugur    schedule 08.08.2017
comment
'content_my_message_view.xml' - это файл линейного макета, который имеет несколько текстовых и графических представлений, и я использую этот макет и в других макетах. Итак, я сделал отдельный макет и использовал include. Тег ‹merge› я динамически заменяю представления, поэтому я использовал тег слияния. Летом тег слияния предназначен для просмотров, которые будут увеличиваться здесь во время выполнения. Итак, внутри слияния я использовал тег include, чтобы я мог загружать content_my_message_view.xml во время выполнения.   -  person Ramesh Pasupuleti    schedule 08.08.2017
comment
как следует из названия, вам нужно более одного, чтобы объединить что-то на практике   -  person ugur    schedule 08.08.2017
comment
также слияние не поддерживается w.r.t. к официальному документу. посмотри мой ответ   -  person ugur    schedule 08.08.2017


Ответы (1)


Ссылка, которую вы предоставили, явно говорит о том, что она не поддерживается.

Привязка данных не поддерживает включение в качестве прямого дочернего элемента элемента слияния. Например, следующий макет не поддерживается:

<?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>
person ugur    schedule 07.08.2017