2013-04-20 22 views
6

Jak zastosować row_span do TableLayout?Jak zastosować rozstawę rzędów w tablelayout?

Chcę zrobić coś podobnego do tego obrazu, ale nie wiem jak to zrobić.

table image

Jaki jest prawidłowy sposób zrobić coś takiego?

+0

wydaje się możliwe powielać http://stackoverflow.com/questions/2189986/android-table-layout-rowspan –

+0

nie jest powielany. To nie jest odpowiedź na pytanie, które zadałem. – miguel

+0

czy masz jakieś rozwiązanie dla tego –

Odpowiedz

0

Czy używane "android: layout_span" może być używany do rozpiętości wierszy. Nie można go pobrać przez Ctrl + Spacja, musisz wpisać go ręcznie.

+1

To jest dla kolumn łączących. – JakeSteam

+0

pochwała, że ​​działa dokładnie dla mnie – kemdo

+0

pracował! naprawdę dzięki Tushski –

4

trochę oszukiwanie (może być dość skomplikowane, aby kod i ważne tylko dla prostej konstrukcji):

Zrób TableLayout. Umieść drugą TableLayout wewnątrz pierwszej kolumny i widok, który ma mieć szerokość wiersza w drugiej kolumnie. Ten wewnętrzny TableLayout może mieć tylu TableRows, jak chcesz, aby inny widok obejmował.

Oto kod:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:padding="@dimen/activity_horizontal_margin" 
    tools:context=".MainActivity"> 

    <TableLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <TableRow 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:weightSum="3"> 

      <TableLayout 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1.5"> 

       <TableRow 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:background="@android:color/holo_blue_dark"> 

        <TextView 
         android:text="Row 1"/> 

       </TableRow> 

       <TableRow 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:background="@android:color/holo_blue_light"> 

        <TextView 
         android:text="Row 2"/> 

       </TableRow> 

       <TableRow 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:background="@android:color/holo_blue_bright"> 

        <TextView 
         android:text="Row 3"/> 

       </TableRow> 

      </TableLayout> 

      <TextView 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1.5" 
       android:text="Second column, rowspan 3" 
       android:background="@android:color/holo_purple" 
       android:gravity="center"/> 

     </TableRow> 

    </TableLayout> 

</LinearLayout> 

Więc tu Podsumowując:

TableLayout: pierwszą kolumnę (TableLayout tyloma TableRows jak chcemy), drugą kolumnę (element, który zajmie się wszystkim tym, przestrzeń rzędów).

enter image description here

+0

coś przeoczyłem? jak zrobić dwa wiersze == dwie kolumny? Powinieneś umieścić dwa układy tabel w jednym rzędzie, aby osiągnąć dwie kolumny, a następnie w zagnieżdżonych tablelayout umieścić rzędy i w drugim tablelayout w jednym wierszu lub jakiejkolwiek innej treści. następnie w drugim rzędzie ustawiona rozpiętość = 2 – ceph3us

+0

Przykro mi. to pomyłka. Miałem na myśli dwie kolumny, a nie dwa rzędy. Chodzi o to, że pierwsza kolumna zawiera TableLayout z tylu rzędów, ile chcesz, a druga kolumna zawiera tylko jeden widok. Będę edytować. –