2011-08-27 4 views
36

Possible en double:
What is the equivalent of “colspan” in an Android TableLayout?Spanning colonnes avec TableLayout

Il est dit dans la documentation TableLayout "Les cellules peuvent couvrir des colonnes, comme ils peuvent en HTML." Cependant, je ne trouve aucun moyen de le faire.

Spécifiquement, j'ai une rangée avec deux colonnes et une autre avec une colonne. Je veux que la ligne d'une colonne couvre toute la table. Cela semble facile, mais je ne le vois pas.

+1

en double de: http://stackoverflow.com/q/2710793/165674 –

Répondre

63

Ajouter android: layout_span = "3" pour couvrir 3 colonnes. Par exemple:

 <TableRow> 
      <Button android:id="@+id/item_id" 
       android:layout_span="2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="item text" />  
     </TableRow> 
+3

Ahh, il est, en TableRow.LayoutParams: http://developer.android.com/ reference/android/widget/TableRow.LayoutParams.html –

+2

Trouver ces fichiers XML de mise en page est délicat - il est facile d'oublier les attributs android: layout_ * sont dans des javadocs distincts. –

+1

-1, Cette solution ne fonctionne pas lorsque le texte du bouton est trop petit. Par exemple quand le texte est seulement un '+ 'comme dans une application calculatrice, le bouton ne grossira pas jusqu'à ce qu'il couvre deux colonnes (si ces deux colonnes sont plus larges que le bouton est sans columnSpan). – Zelphir

2

android: layout_span le tour est joué.

exemple:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<TableRow> 
    <TextView android:id="@+id/info" 
     android:layout_span="2" 
     android:text="some text" 
     android:padding="3dip" 
     android:layout_gravity="center_horizontal" /> 
</TableRow> 
<TableRow> 
    <TextView android:text="some other text" 
     android:padding="3dip" /> 
    <TextView android:text="more text" 
     android:padding="3dip" /> 
</TableRow> 
</TableLayout>