2010-08-27 9 views
10

Je veux placer un textview sur le droit d'une mise en page et à gauche d'une mise en page, mais ils continuent à empiler ontop les uns des autres:Comment placer textview sur la droite et la gauche de la mise en page?

<LinearLayout 
     android:layout_width="0dip" 
     android:layout_weight="1" 
     android:layout_height="fill_parent" android:orientation="horizontal"> 
     <TextView 
      android:id="@+id/lefttext" 
      android:layout_width="fill_parent" 
      android:layout_height="0dip" 
      android:layout_weight="1" 
      android:text="Symbol"/> 
     <TextView 
      android:id="@+id/righttext" 
      android:layout_width="fill_parent" 
      android:layout_height="0dip" 
      android:layout_weight="1" 
      android:text="Price"/> 
    </LinearLayout> 

Répondre

18

Essayez ceci:

<?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="horizontal" 
    > 
    <TextView 
     android:id="@+id/left_text" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Symbol" 
     /> 
    <TextView 
     android:id="@+id/right_text" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Price" 
     /> 
</LinearLayout> 

Pourquoi vous spécifiez 0dip pour la hauteur sur ceux-ci?

Pour les symboles sur les côtés:

<?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="horizontal" 
    > 
    <TextView 
     android:id="@+id/left_text" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="5dip" 
     android:gravity="left" 
     android:text="Symbol" 
     /> 
    <TextView 
     android:id="@+id/right_text" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="5dip" 
     android:gravity="right" 
     android:text="Price" 
     /> 
</LinearLayout> 

Et fait avec un RelativeLayout:

<?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" 
    > 
    <TextView 
     android:id="@+id/left_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="5dip" 
     android:layout_alignParentLeft="true" 
     android:text="Code" 
     /> 
    <TextView 
     android:id="@+id/right_text" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="5dip" 
     android:layout_toRightOf="@+id/left_text" 
     android:gravity="right"  
     android:text="Company Name" 
     /> 
</RelativeLayout> 
+0

quelque façon que ce soit de faire symbole à l'extrême gauche et le prix soit à l'extrême droite? –

+0

Oui, il suffit d'ajuster le réglage de la gravité à ce que vous voulez. J'ai ajouté un exemple ci-dessus. (J'ai également ajouté une petite quantité de rembourrage, de sorte qu'ils ne sont pas pressés contre les côtés) – kcoppock

+0

Le right_text ne semble pas graviter vers la droite, consultez ma capture d'écran: http://cl.ly/786ff7d72c99537d190b –

4

Utilisez android:layout_alignParentLeft="true" et android:layout_alignParentRight="true" sur la vue à l'intérieur RelaytiveLayout comme celui-ci

<?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="wrap_content" 
    > 
    <TextView 
     android:id="@+id/left_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:gravity="left|center_vertical" 
     android:text="Symbol" 
     /> 
    <TextView 
     android:id="@+id/right_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:gravity="right|center_vertical" 
     android:text="Price" 
     /> 
</RelativeLayout> 

Sinon, vous pouvez utiliser TableLayout avec stretchColumn défini pour étirer la deuxième colonne à la taille du parent.

2

Avec LinearLayout, vient de mettre un TextView vide avec le poids entre eux:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
    <TextView 
     android:id="@+id/lefttext" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="Symbol"/> 
    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     /> 
    <TextView 
     android:id="@+id/righttext" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="Price"/> 
</LinearLayout> 
+1

Par exemple, il est préférable de ne pas mettre de TextView mais une vue: mykolaj