2010-10-01 7 views
1

Comment définir une mise en page suivante dans mon fichier xml:Mise en page XML Android

alt text

J'espère que vous avez obtenu de l'image que je veux afficher TextView1 sur le 1er rang, et en 2ème rangée, TextView2 à gauche et TextView3 sur le côté droit.

Comment définir cette disposition?

Je sais que l'attribut layout_gravity mais pas obtenir le succès, pls partager votre code

Répondre

2

Je pense que ce résoudre votre problème

alt text

<LinearLayout android:id="@+id/LinearLayout01" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical"> 
    <TableLayout android:id="@+id/TableLayout01" 
     android:layout_height="wrap_content" android:layout_width="fill_parent" 
     android:stretchColumns="0"> 
     <TableRow android:id="@+id/TableRow01" android:layout_height="wrap_content" 
      android:layout_width="fill_parent"> 
      <TextView android:text="@+id/TextView01" android:id="@+id/TextView01" 
       android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> 

</TableRow> 
     <TableRow android:id="@+id/TableRow02" android:layout_height="wrap_content" 
      android:layout_width="fill_parent"> 
      <TextView android:text="@+id/TextView03" android:id="@+id/TextView03" 
       android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> 
      <TextView android:text="@+id/TextView04" android:id="@+id/TextView04" 
       android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> 
     </TableRow> 
    </TableLayout> 
</LinearLayout> 

nouvelle amende de travail de solution je pense que pour vous

<LinearLayout android:id="@+id/LinearLayout01" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical"> 

<TextView android:text="@+id/TextView01" android:id="@+id/TextView01" android:layout_height="wrap_content" android:layout_width="fill_parent"></TextView> 
    <LinearLayout android:id="@+id/LinearLayout02" 
     android:layout_height="wrap_content" android:layout_width="fill_parent"> 
     <TextView android:text="@+id/TextView02" android:id="@+id/TextView02" 
      android:layout_height="wrap_content" android:layout_width="fill_parent" 
      android:layout_weight="1"></TextView> 
     <TextView android:text="@+id/TextView03" android:id="@+id/TextView03" 
      android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> 
    </LinearLayout> 
</LinearLayout> 

k je suis un parfait maintenant alt text

<LinearLayout android:id="@+id/LinearLayout01" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical"> 

<TextView android:text="@+id/TextView01" android:id="@+id/TextView01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_marginRight="15dip"></TextView> 
    <LinearLayout android:id="@+id/LinearLayout02" 
     android:layout_height="wrap_content" android:layout_width="fill_parent"> 
     <TextView android:text="@+id/TextView02" android:id="@+id/TextView02" 
      android:layout_height="wrap_content" android:layout_width="fill_parent" 
      android:layout_weight="1"></TextView> 
     <TextView android:text="@+id/TextView03" android:id="@+id/TextView03" 
      android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> 
    </LinearLayout> 
</LinearLayout> 
+0

thanx, 2ème rangée est bien, mais la 1ère rangée ne montre pas dans FULL_LENGTH, il devrait couvrir la longueur FILL_PARENT (pleine surface), Textview01 et Textview03 sont de même longueur, il suffit de vérifier l'image que j'ai téléchargé où il est clairement montré que Textview01 est le plein longueur –

+0

vérifier mon image pour la longueur TextView01 –

+0

k édité la réponse nouvelle solution essayez que –

0

Par exemple, la mise en page suivante déclare ce dont vous avez besoin:

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:stretchColumns="1"> 
<TableRow> 
    <TextView 
     android:text="@+id/TextView01" 
     android:padding="3dip" /> 

</TableRow> 

<TableRow> 
    <TextView 
     android:text="@+id/TextView02" 
     android:padding="3dip" /> 
    <TextView 
     android:text="@+id/TextView03" 
     android:gravity="right" 
     android:padding="3dip" /> 
</TableRow> 
</TableLayout> 
+0

Thanx, cela crée la mise en page où dans la 2e rangée, textview2 et textview3 arrivent côte à côte alors que je souhaite avoir textview3 sur le côté droit dans la 2ème rangée –

+0

Aa, je le vois. Ensuite, vous pouvez le faire avec la disposition de la table. J'ai mis à jour le code. – uthark

+0

mise à jour du code de mise en page me donne la bonne solution mais il y a une erreur mineure que vous avez faite, donc ne pas obtenir la solution exacte selon l'image, votre code définit la disposition dans laquelle TextView3 a la plus grande surface que TextView2 a la plus grande surface –

0

Le fichier de mise en page ressemble ci-dessous:

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="wrap_content" android:layout_height="wrap_content"> 
     <TextView android:text="@+id/TextView01" android:id="@+id/TextView01" 
      android:layout_width="fill_parent" android:layout_height="wrap_content" /> 

     <TextView android:text="@+id/TextView02" android:id="@+id/TextView02" 
      android:layout_below="@+id/TextView01" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:layout_alignParentLeft="true" /> 
     <TextView android:text="@+id/TextView03" android:id="@+id/TextView03" 
      android:layout_below="@+id/TextView01" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:layout_alignParentRight="true" 
android:layout_toRightOf="@+id/TextView02"/> 
    </RelativeLayout> 
+0

La solution est bonne, mais vous utilisez deux objets de mise en page. Et Google recommande d'utiliser autant de mises en page que possible (http://developer.android.com/resources/articles/layout-tricks-efficiency.html). Mais je ne suis pas sûr, si ma réponse avec une mise en page, mais qui est TableLayout est meilleure ou non de deux laways linéaire/relative. – uthark

+0

la solution est correcte mais juste voir l'image où la 2ème rangée est divisée entre 2 textviews, en ce que TextView2 a la plus grande surface et dans le reste de la zone TextView3 devrait être apparu à droite, je pense que vous l'avez ce que j'essaye de dis –

+0

@uthark: Ok alors. J'ai fait un changement dans votre code. ajoutez simplement les attributs 'layout_alignParentRight' et' Layout_alignParentLeft' dans la vue Texte 2 & 3. Maintenant, je l'ai réalisé dans une seule mise en page. – Praveen

0

Enfin, j'ai mis en œuvre avec le code belox xml, son bien pour moi de travailler:

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

<LinearLayout android:id="@+id/LinearLayout01" 
       android:layout_height="wrap_content" 
       android:layout_width="fill_parent"> 

     <TextView 
      android:text="@+id/TextView01" 
      android:id="@+id/txtViewTop" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textSize="18dip"> 
     </TextView> 
</LinearLayout> 

<LinearLayout 
     android:id="@+id/LinearLayout02" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:orientation="horizontal"> 

     <TextView 
      android:text="@+id/TextView02" 
      android:id="@+id/txtBottomLeft" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left" 
      android:layout_weight="1" 
      android:textSize="14dip"> 
     </TextView> 

     <TextView 
      android:text="@+id/TextView03" 
      android:id="@+id/txtBottomRight" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="6dip" 
      android:textSize="14dip"> 
     </TextView> 
</LinearLayout> 

</LinearLayout>