119 votes

Comment inclure la mise en page dans la mise en page ?

Comment inclure une mise en page dans une mise en page sous Android ?

Je suis en train de créer une mise en page commune. Je veux inclure cette mise en page dans une autre page.

0 votes

Il existe un exemple d'utilisation simple [dans cet article][1] [1] : stackoverflow.com/questions/2732682/

231voto

Michael Rose Points 6164

Edit : Comme dans un commentaire demandé à juste titre, voici quelques informations supplémentaires. Utilisez le include étiquette

<include
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   layout="@layout/yourlayout" />

pour inclure la mise en page que vous souhaitez réutiliser.

Vérifiez ce lien dehors...

14 votes

Juste un petit détail : utilisez Android:layout_width="match_parent" au lieu de Android:layout_width="fill_parent". fill_parent est déprécié.

2 votes

Puis-je inclure une mise en page et définir certaines de ses propriétés via le xml, par exemple définir une chaîne de texte dans la sous-mise en page directement dans la balise <include> ?

0 votes

@JohnyTex Je ne suis pas sûr que vous puissiez le faire directement dans l'interface de l'entreprise. <include /> cependant, vous pouvez le faire en utilisant du code java. voir Réponse de Phileo99 ci-dessous pour savoir comment obtenir une référence à la mise en page incluse. et ensuite vous pouvez modifier son contenu.

76voto

Phileo99 Points 319

Notez que si vous incluez android:id... dans le <include /> il remplacera l'identifiant défini dans la mise en page incluse. Par exemple :

<include
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/some_id_if_needed"
   layout="@layout/yourlayout" />

votrelayout.xml :

<LinearLayout
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/some_other_id">
   <Button
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:id="@+id/button1" />
 </LinearLayout>

Ensuite, vous ferez référence à ce modèle inclus dans le code comme suit :

View includedLayout = findViewById(R.id.some_id_if_needed);
Button insideTheIncludedLayout = (Button)includedLayout.findViewById(R.id.button1);

22voto

GrAnd Points 5387

Utilice <include /> étiquette.

          <include 
            android:id="@+id/some_id_if_needed"
            layout="@layout/some_layout"/>

Lisez aussi Création de composants d'interface utilisateur réutilisables et Fusionner les mises en page articles.

0 votes

Les deux liens n'existent plus.

6voto

Abhi Points 3

Essayez ceci

<include
            android:id="@+id/OnlineOffline"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            layout="@layout/YourLayoutName" />

3voto

IntelliJ Amiya Points 672

De documents officiels sur Réutilisation des mises en page

Bien qu'Android offre une grande variété de widgets pour fournir des éléments interactifs petits et réutilisables, vous pourriez avoir des difficultés à les utiliser. éléments interactifs réutilisables, vous pouvez aussi avoir besoin de réutiliser des qui nécessitent une mise en page particulière. Pour réutiliser efficacement des mises en page complètes, vous pouvez utiliser la balise pour intégrer une autre à l'intérieur de la mise en page actuelle.

Voici mon en-tête.xml que je peux réutiliser en utilisant inclure l'étiquette

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFFFFF"
    >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:gravity="center"
        android:text="@string/app_name"
        android:textColor="#000000" />

</RelativeLayout>

Non, j'utilise le dans le XML pour ajouter une autre mise en page à partir d'un autre fichier XML.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#f0f0f0" >

    <include
        android:id="@+id/header_VIEW"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        layout="@layout/header" />

        <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:background="#ffffff"
        android:orientation="vertical"
        android:padding="5dp" >

    </LinearLayout>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X