2013-04-20 7 views
6

Wie man row_span auf TableLayout anwendet?Wie man Zeilenspanne in tabellarischer Darstellung anwendet?

Ich möchte etwas ähnliches zu diesem Bild machen, aber ich weiß nicht, wie es geht.

table image

Was ist der richtige Weg, so etwas zu machen?

+0

scheint wie eine mögliche doppelte http://stackoverflow.com/questions/2189986/android-table-layout-rowspan –

+0

nicht dupliziert. Das ist nicht die Antwort auf die Frage, die ich gestellt habe. – miguel

+0

haben Sie keine Lösung für diese –

Antwort

0

Haben Sie verwendet "android: layout_span" es verwendet werden kann Zeilen erstrecken. Sie können es nicht über Strg + Leertaste eingeben, Sie müssen es manuell eingeben.

+1

Das ist für Spanning-Spalten. – JakeSteam

+0

empfohlen, dass funktioniert genau für mich – kemdo

+0

gearbeitet! wirklich danke Tushski –

4

Kleiner Betrug (vielleicht recht komplex zu codieren und nur gültig für eine einfache Ausführung):

ein TableLayout Make. Setzen Sie eine weitere TableLayout in die erste Spalte und eine Ansicht, in der Sie die Zeilenspanne in der zweiten Spalte haben möchten. Dieses innere TableLayout kann so viele TableRows haben, wie Sie die andere Ansicht wünschen, um zu überspannen.

Hier ist der Code:

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

Also tu es zusammenzufassen:

Tablelayout: erste Säule (Tablelayout mit so vielen TableRows wie wir wollen), die zweite Säule (Element, das alle diejenigen aufnehmen wird Zeilenraum).

enter image description here

+0

Ich habe etwas verpasst? wie macht man zwei Zeilen == zwei Spalten? Sie sollten zwei Tabellenlayouts in einer Zeile platzieren, um zwei Spalten zu erhalten, dann in verschachtelten Tabellenlayout-Zeilen und in einer zweiten Tabelle eine Zeile oder einen anderen Inhalt. dann in der zweiten Reihe set span = 2 – ceph3us

+0

tut mir leid. Es ist ein Fehler. Ich meinte zwei Spalten, nicht zwei Zeilen. Die erste Spalte enthält ein TableLayout mit so vielen Zeilen, wie Sie überspannen möchten, und die zweite Spalte enthält nur eine Ansicht. Ich werde bearbeiten. –