Chcę użyć jednego z moich układów wiele razy w tym samym widoku przy użyciu include
. Załóżmy, że mam custom.xml
, w tym niektóre z TextView
s.Dołącz znacznik i dataBinding
custom.xml
:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:orientation="vertical" >
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
mam włączone Ten układ kilka razy w parent.xml
:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<include layout="@layout/custom"
android:id="@+id/layout1"/>
<include layout="@layout/custom"
android:id="@+id/layout2"/>
</LinearLayout>
Teraz chcę związać moje modele danych do tego układu, ale problemem jest to, że don” • wiedzieć, jak powiązać dwa różne modele danych z layout1
i layout2
, ponieważ oba są ponownie zapisywane z jednego układu, który jest custom.xml
. O ile wiem, że mogę dodać ten tag w moim układ xml:
<data>
<variable name="user" type="com.myproject.model.User"/>
</data>
Ale muszę wiązać dwa różne modele danych do custom.xml
.
Moje pytanie brzmi: w jaki sposób uwzględnić wielokrotnie układ w jednym widoku i przekazywać do niego różne dane za pomocą funkcji powiązania danych? coś jak przekazywanie danych do układu, ale nie statyczne wiązanie modelu do xml.
Znalazłem również this pytanie, które ma dokładnie ten sam problem Ale odkąd Data Binding jest wydany w nowszych wersjach Androida, szukam sposobu rozwiązania tego samego problemu za pomocą Data Binding. Oto część tego pytania, że mam cytowany dla wyjaśnienia:
Na przykład, mam starannie spreparowane układ, który chcę wyświetlić trzy razy w moim zdaniem. Każda z tych instancji wymagałaby różnych wartości: . Ponieważ kod
include
jest w zasadzie zbiorem XML i wklejeniem go tutaj, potrzebuję czegoś mocniejszego.
Jeśli układy są takie same, a jedynie dane zmienia się, dlaczego nie można rozważyć przy użyciu niestandardowego recycleView? –
ponieważ chcę przekazać dwa różne modele danych, na przykład jeden to Użytkownik, a drugi to Adres, ale oba modele używają tego samego układu, aby pokazać swoje dane. –