2010-09-24 10 views
1

J'ai des problèmes pour créer une disposition de table avec 4 colonnes, qui s'étendent horizontalement.Comment créer un TableLayout avec 4 colonnes?

Je veux que ma ligne pour ressembler à ceci:

AAPL | 200.00 | Image Divider | 1,53 (+ 1,5%)

Je veux que le 200.00 soit aligné à droite, ainsi que le 1.53 (+ 1.5%).

<?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:background="@drawable/stocks_gradient" android:orientation="horizontal"> 
    <TableLayout android:layout_width="wrap_content" 
     android:layout_toLeftOf="@+id/priceText" android:layout_height="wrap_content" 
     android:id="@+id/TableLayout01"> 
     <TableRow android:layout_width="wrap_content" 
      android:layout_below="@+id/nameText" android:id="@+id/TableRow01" 
      android:layout_height="wrap_content"></TableRow> 
     <TextView android:id="@+id/nameText" android:layout_height="wrap_content" 
      android:padding="5dip" android:layout_alignParentLeft="true" 
      android:text="Symbol" android:textStyle="bold" android:textSize="24sp" 
      android:layout_width="100dp" android:textColor="#4871A8" /> 
     <TextView android:id="@+id/priceText" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:padding="5dip" 
      android:layout_toRightOf="@+id/nameText" android:gravity="right" 
      android:text="100" android:textStyle="bold" android:textSize="24sp" 
      android:textColor="#4871A8" /> 
     <ImageView android:layout_toLeftOf="@+id/changeText" 
      android:id="@+id/verticalDivider" android:background="@drawable/vertical_divider" 
      android:layout_width="wrap_content" android:layout_height="48dp"></ImageView> 
     <TextView android:id="@+id/changeText" android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/priceText" android:gravity="right" 
      android:textSize="18sp" android:text="3.07(+1.08%)" android:padding="12dip" 
      android:layout_width="fill_parent" /> 
    </TableLayout> 

Répondre

2

android:layout_toLeftOf, android:layout_toRightOf et android:layout_below sont des attributs pour une utilisation avec RelativeLayout. Vous n'avez pas de RelativeLayout. Par conséquent, ces attributs tels qu'utilisés dans votre XML ci-dessus ne vous servent à rien.

Pour faire une rangée avec quatre colonnes, ayez quatre enfants du widget TableRow.

Je ne suis pas complètement clair sur la façon dont vous obtiendriez votre effet aligné à droite. Probablement android:gravity vous y arriver, mais je soupçonne que le problème est plus compliqué que cela.

+0

Mes 4 éléments de mise en page ne sont-ils pas des enfants du TableRow maintenant? –

+0

@Sheehan Alam: Non. Notez la position de votre balise ''. – CommonsWare

0

android:gravity devrait être tout ce dont vous avez besoin ici puisque votre TextView est déjà dans width=fill_parent, par ex. il alignera le texte à droite dans la vue.

Sinon, vous pouvez également jouer avec android:layout_gravity="right", par ex. Si vous avez une vue avec width=wrap_content et que vous devez indiquer au conteneur comment l'aligner.