Die diskutiert Bindungswerte innerhalb einer Aktivität oder eines Fragments, aber gibt es eine Möglichkeit, Datenbindung mit einer benutzerdefinierten Ansicht durchzuführen?Androide Datenbindung mit einer benutzerdefinierten Ansicht
würde Ich mag, wie etwas zu tun ist:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.mypath.MyCustomView
android:id="@+id/my_view"
android:layout_width="match_parent"
android:layout_height="40dp"/>
</LinearLayout>
mit my_custom_view.xml
:
<layout>
<data>
<variable
name="myViewModel"
type="com.mypath.MyViewModelObject" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{myViewModel.myText}" />
</LinearLayout>
</layout>
Während es möglich erscheint diesen Brauch durch das Setzen zu tun Attribute auf der benutzerdefinierten Ansicht, dies würde schnell lästig werden wenn es viele zu bindende Werte gibt.
Gibt es einen guten Weg, um das zu erreichen, was ich versuche?
Haben Sie versucht, die Daten in Ihrer MyCustomView Klasse Bindung nach der custome Ansicht Aufblasen? –
Ich habe ein paar Dinge versucht, um dies zu erreichen, aber die Bindungsfunktionen scheinen Informationen zu benötigen, die in einer Aktivität oder einem Fragment enthalten sind. Ihre Beispiele gaben kein Beispiel dafür, wie dies in einer benutzerdefinierten Ansicht erreicht werden kann. Ein kurzes Code-Snippet, um dies zu erreichen, wäre sehr willkommen. – Dave
FYI: Ich denke, XML-Layout-Dateien werden per Konvention mit Unterstrich-Notation benannt. –