2013-04-20 13 views
6

Come applicare row_span a TableLayout?Come applicare lo span di una riga in tablelayout?

Voglio fare qualcosa di simile a questa immagine, ma non so come farlo.

table image

Qual è il modo corretto di fare qualcosa di simile?

+0

sembra come un possibile duplicato http://stackoverflow.com/questions/2189986/android-table-layout-rowspan –

+0

non sia duplicato. Questa non è la risposta alla domanda che ho posto. – miguel

+0

hai trovato una soluzione per questo –

risposta

0

Hai usato "android: layout_span" può essere usato per attraversare le righe. Non puoi ottenerlo tramite Ctrl + Spazio, devi digitarlo manualmente.

+1

Questo vale per le colonne spanning. – JakeSteam

+0

ha elogiato, che funziona esattamente per me – kemdo

+0

ha funzionato! davvero grazie Tushski –

4

piccolo imbroglio (forse abbastanza complessa per codificare e valida solo per un design semplice):

Fai un TableLayout. Metti un altro TableLayout all'interno della prima colonna e una vista che vuoi avere il rowspan nella seconda colonna. Questo interno TableLayout può avere il numero di TableRows mentre desideri visualizzare l'altra vista.

Ecco il codice:

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

Quindi, tu riassumere:

TableLayout: prima colonna (TableLayout con il maggior numero di TableRows come vogliamo), seconda colonna (elemento che assumerà tutti coloro lo spazio delle righe).

enter image description here

+0

mi sono perso qualcosa? come fai due righe == due colonne? Dovresti mettere due layout di tabella in una riga per ottenere due colonne, poi in tablelayout annidato mettere le righe e in seconda tablelayout una riga o qualsiasi altro contenuto. quindi in seconda fila set span = 2 – ceph3us

+0

Mi dispiace. è un errore. Intendevo due colonne, non due righe. Il fatto è che la prima colonna contiene un TableLayout con tutte le righe che vuoi includere e la seconda colonna contiene solo una vista. Io modifico –