Je reçois une erreur de suivi lorsque j'utilise databinding et include tag inside:
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 ****
Ceci est mon fichier de mise en page:
[...]
<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>
Et dans chacune des mises en page incluses, j'ai quelque chose comme ceci:
<layout xmlns:Android="http://schemas.Android.com/apk/res/Android">
[...]
</layout>
De cette réponse: Liaison de données Android à l'aide de la balise include je suppose que mon code est correct, pourquoi databinder pense-t-il que j'utilise plus d'une balise dans le fichier?
J'ai résolu mon problème. Cette erreur apparaît lorsqu'il y a plus d'un élément dans la balise de présentation:
Faux:
<layout>
<data>
...
</data>
<LinearLayout>
...
</LinearLayout>
<LinearLayout>
...
</LinearLayout>
</layout>
Correct:
<layout>
<data>
...
</data>
<LinearLayout>
<LinearLayout>
...
</LinearLayout>
<LinearLayout>
...
</LinearLayout>
</LinearLayout>
</layout>
Dans <layout>, il faut avoir une <data> et un layoutView (Relatif/Linéaire, etc.) .... Plusieurs layoutViews ne sont pas autorisés. Dans layoutViews peut avoir plusieurs layoutViews mais la multiplicité des couches supérieures n'est pas autorisée ... .
Cette erreur se produit également lorsque vous utilisez DataBinding et que vous utilisez tag sans tag.
correct
<layout>
<data>
<variable>
</variable>
</data>
<LinearLayout>
...
</LinearLayout>
<LinearLayout>
...
</LinearLayout>
en d'autres termes, vous devez keap DataBinding structure en XML
in other words you have to keap DataBinding structure in xml