android - studio - Error de enlace de datos: solo se permiten un elemento de diseño y un elemento de datos.
data binding español (3)
Recibo el siguiente error al utilizar el enlace de datos e incluir una etiqueta en el interior:
Error:Execution failed for task '':app:dataBindingProcessLayoutsBetaDebug''.>data binding error msg:Only one layout element and one data element are allowed. [path to file] has 3file:[path to file]****/ data binding error ****
Este es mi archivo de diseño:
[...]
<LinearLayout
android:id="@+id/activity_description_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:orientation="vertical">
<include
android:id="@+id/activity_description_header_bottom"
layout="@layout/activity_description_header_bottom" />
<include
android:id="@+id/activity_description_contact_info"
layout="@layout/activity_description_contact_info" />
<include
android:id="@+id/activity_description_other_info_box"
layout="@layout/activity_description_other_info_box" />
<include
android:id="@+id/activity_description_bottom_buttons"
layout="@layout/activity_description_bottom_buttons" />
</LinearLayout>
[...]
</layout>
Y en cada uno de los diseños incluidos tengo algo como esto:
<layout xmlns:android="http://schemas.android.com/apk/res/android">
[...]
</layout>
De esta respuesta: Enlace de datos de Android con la etiqueta de inclusión Supongo que mi código es correcto, ¿por qué el enlace de datos cree que uso más que una sola etiqueta en el archivo?
En <layout>, debe tener un <data> y un layoutView (Relative / Linear, etc.) .... No se permiten múltiples layoutViews. En layoutViews pueden tener múltiples visualizaciones de layout pero en la capa superior no se permiten multiplicidades ....
Resolví mi problema. Este error aparece cuando hay más de un elemento en la etiqueta de diseño:
Incorrecto:
<layout>
<data>
...
</data>
<LinearLayout>
...
</LinearLayout>
<LinearLayout>
...
</LinearLayout>
</layout>
Correcto:
<layout>
<data>
...
</data>
<LinearLayout>
<LinearLayout>
...
</LinearLayout>
<LinearLayout>
...
</LinearLayout>
</LinearLayout>
</layout>
También este error se produce cuando se utiliza DataBinding y se usa la etiqueta sin etiqueta
correcto
<layout>
<data>
<variable>
</variable>
</data>
<LinearLayout>
...
</LinearLayout>
<LinearLayout>
...
</LinearLayout>
en otras palabras, debe mantener la estructura DataBinding en xml