Réglage de l'attribut de l'élément enfant de mise en page
J'ai un main.xml fichier décrivant la disposition de mon activité principale:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<include layout="@layout/mylayout" />
<include layout="@layout/mylayout" />
<include layout="@layout/mylayout" />
<include layout="@layout/mylayout" />
<include layout="@layout/mylayout" />
<include layout="@layout/mylayout" />
</LinearLayout>
et ses layout xml (fichier mylayout.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mylayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello world" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Je veux juste comprendre "monmodèle" dans ma page principale 5 fois, mais au lieu de voir "hello world" 5 fois, je veux le TextView pour contenir du texte personnalisé.
Est-il possible de le faire en mettant un attribut à l'élément include pour remplacer l'enfant TextView du texte? Quelle serait la meilleure approche à prendre pour accomplir cette?
- Cela semble être une limitation grave, qui doit être fixée. Je viens d'envoyer un rapport de bug.
InformationsquelleAutor Matt | 2012-01-26
Vous devez vous connecter pour publier un commentaire.
Non, il n'est pas possible de passer des paramètres à la mise en page autre que la mise en page paramètres à l'aide de la
<include>
directive.Vous pouvez gonfler la mise en page par programmation et les ajouter à votre vue. Ajouter un id pour le conteneur dans votre page principale:
Puis dans votre Activité:
- Il Possible si vous Activez la Liaison de Données
reuse_layout.xml
lorsque vous appelez la reuse_layout.xml ajoutez juste "app:texte de l'attribut, il
app:
puis suivi par le nom de la variable. Je suppose que vous essayez d'envoyer la chaîne en utilisant@string
droit? dans ce cas, veuillez utiliserapp:text="@{@string/your_string_key}"
https://developer.android.com/training/improving-layouts/reusing-layouts.html
Vous pouvez définir le android:id de la propriété de chaque comprennent. Qui donne l'id de l'élément racine de la mise en page inclus.
Obtenir ce point de vue par l'identité de trouver la sous-vue vous voulez changer le texte sur.