2011-06-20 3 views
1

Je suis nouveau codage XML pour fils desinging une application Android et j'ai un problème en utilisant 2 linearLayour dans le même xml ...LinearLayout problème (2 LLayout dans le même XML)

J'ai " erreur dans un fichier XML: build abandon » avec le code suivant:

 <?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <TextView android:id="@+id/texte_firsttab" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"/> 

</LinearLayout> 

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 


     <Button android:id="@+id/accessGraphe" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:text="test" 
    android:onClick="selfDestruct" /> 

    <Button android:id="@+id/accessGraphe2" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:text="test2" 
    android:onClick="selfDestruct" /> 
</LinearLayout> 

peut-on mettre deux disposition linéaire dans le même fichier xml?

Répondre

1

Vous ne pouvez pas avoir deux mises en page de niveau supérieur. Comment le système pourrait-il les organiser? Vous devez les inclure dans une autre mise en page qui le définit.

Je suppose que les blancs devant l'étiquette <?xml ... sont dus au formatage du code dans votre publication et ne sont pas présents dans le fichier de mise en page réel. Cela causerait aussi un problème.

+0

vous avez raison ;-) merci! C'est mieux comme ça! – clement

1

Non, vous ne pouvez pas .... comment voulez-vous référer à l'un ou l'autre à partir du code source?

Si vous voulez avoir deux configurations linéaires en même temps (un en haut et un en bas), alors vous devez intégrer les dans une autre mise en page:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weigth="1"> 

    <TextView android:id="@+id/texte_firsttab" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"/> 

</LinearLayout> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weigth="1" > 


     <Button android:id="@+id/accessGraphe" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:text="test" 
    android:onClick="selfDestruct" /> 

    <Button android:id="@+id/accessGraphe2" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:text="test2" 
    android:onClick="selfDestruct" /> 
</LinearLayout> 
</LinearLayout> 
0

Vous avez deux niveaux de racine éléments, ce qui ne devrait pas arriver (ce n'est pas spécifique aux fichiers de mise en page Android, vous ne pouvez avoir qu'un seul élément de document dans un fichier XML).

Je ne recommanderais pas d'envelopper le LinearLayouts dans un autre, c'est trop compliqué; et c'est généralement une bonne idée d'éviter les mises en page d'imbrication, voir this article sur les dispositions efficaces. Pour un TextView et deux boutons, RelativeLayout serait parfait. C'est aussi plus flexible que les LL.

Questions connexes