2011-08-27 4 views
36

Powiel możliwe:
What is the equivalent of “colspan” in an Android TableLayout?Spanning kolumn TableLayout

mówi w dokumentacji TableLayout "Komórki mogą obejmować kolumny, jak to będzie możliwe w HTML" Jednak nie mogę znaleźć żadnego sposobu, aby to zrobić.

W szczególności mam jeden wiersz z dwiema kolumnami i drugą z jedną kolumną. Chcę, aby rząd jednej kolumny obejmował całą tabelę. Wydaje się łatwe, ale nie widzę tego.

+1

Duplikat: http://stackoverflow.com/q/2710793/165674 –

Odpowiedz

63

dodaj android: layout_span = "3" do 3 kolumn. Na przykład:

 <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, tam to jest w TableRow.LayoutParams: http://developer.android.com/ reference/android/widget/TableRow.LayoutParams.html –

+2

Odnalezienie tego pliku Pliki XML są trudne - łatwo zapomnieć o Androidzie: atrybuty layout_ * znajdują się w osobnych javadocs. –

+1

-1 To rozwiązanie nie działa, gdy tekst przycisku jest zbyt mały. Na przykład, gdy tekst jest tylko "+" jak w aplikacji kalkulatora, przycisk nie wzrośnie, dopóki nie obejmie dwóch kolumn (jeśli te dwie kolumny są szersze niż przycisk bez kolumnySpan). – Zelphir

2

android: layout_span załatwia sprawę.

przykład:

<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>