Tabelle

TableLayout ist ein ViewGroup, der untergeordnete View-Elemente in Zeilen und Spalten anzeigt.

Hinweis:Für eine bessere Leistung und bessere Toolunterstützung sollten Sie stattdessen Ihr Layout mit „ConstraintLayout“ erstellen.

TableLayout positioniert die untergeordneten Elemente in Zeilen und Spalten. TableLayout-Container zeigen keine Rahmenlinien für ihre Zeilen, Spalten oder Zellen an. Die Tabelle hat genauso viele Spalten wie die Zeile mit den meisten Zellen. In einer Tabelle können Zellen leer bleiben. Zellen können sich über mehrere Spalten erstrecken, wie in HTML. Sie können Spalten mithilfe des Felds span in der Klasse TableRow.LayoutParams erstrecken.

Hinweis:Zellen dürfen sich nicht über mehrere Zeilen erstrecken.

TableRow-Objekte sind die untergeordneten Ansichten eines TableLayouts. Jede TableRow definiert eine einzelne Zeile in der Tabelle. Jede Zeile hat null oder mehr Zellen, die jeweils durch eine beliebige andere Ansicht definiert werden. Die Zellen einer Zeile können also aus einer Vielzahl von View-Objekten wie ImageView- oder TextView-Objekten bestehen. Eine Zelle kann auch ein ViewGroup-Objekt sein. So können Sie beispielsweise ein anderes TableLayout als Zelle verschachteln.

Das folgende Beispiellayout enthält jeweils zwei Zeilen und zwei Zellen. Der zugehörige Screenshot zeigt das Ergebnis. Die Zellrahmen werden als gepunktete Linien dargestellt, die für einen visuellen Effekt hinzugefügt wurden.

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="1">
    <TableRow>
        <TextView
            android:text="@string/table_layout_4_open"
            android:padding="3dip" />
        <TextView
            android:text="@string/table_layout_4_open_shortcut"
            android:gravity="right"
            android:padding="3dip" />
    </TableRow>

    <TableRow>
        <TextView
            android:text="@string/table_layout_4_save"
            android:padding="3dip" />
        <TextView
            android:text="@string/table_layout_4_save_shortcut"
            android:gravity="right"
            android:padding="3dip" />
    </TableRow>
</TableLayout>

Spalten können ausgeblendet, markiert werden, um den verfügbaren Bildschirmbereich zu strecken und zu füllen, oder als verkleinerbar markiert werden, um zu erzwingen, dass die Spalte verkleinert wird, bis die Tabelle an den Bildschirm angepasst ist. Weitere Informationen finden Sie in der TableLayout reference-Dokumentation.

Beispiel

  1. Starten Sie ein neues Projekt mit dem Namen HelloTableLayout.
  2. Öffnen Sie die Datei res/layout/main.xml und fügen Sie Folgendes ein:
    <?xml version="1.0" encoding="utf-8"?>
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:stretchColumns="1">
    
        <TableRow>
            <TextView
                android:layout_column="1"
                android:text="Open..."
                android:padding="3dip" />
            <TextView
                android:text="Ctrl-O"
                android:gravity="right"
                android:padding="3dip" />
        </TableRow>
    
        <TableRow>
            <TextView
                android:layout_column="1"
                android:text="Save..."
                android:padding="3dip" />
            <TextView
                android:text="Ctrl-S"
                android:gravity="right"
                android:padding="3dip" />
        </TableRow>
    
        <TableRow>
            <TextView
                android:layout_column="1"
                android:text="Save As..."
                android:padding="3dip" />
            <TextView
                android:text="Ctrl-Shift-S"
                android:gravity="right"
                android:padding="3dip" />
        </TableRow>
    
        <View
            android:layout_height="2dip"
            android:background="#FF909090" />
    
        <TableRow>
            <TextView
                android:text="X"
                android:padding="3dip" />
            <TextView
                android:text="Import..."
                android:padding="3dip" />
        </TableRow>
    
        <TableRow>
            <TextView
                android:text="X"
                android:padding="3dip" />
            <TextView
                android:text="Export..."
                android:padding="3dip" />
            <TextView
                android:text="Ctrl-E"
                android:gravity="right"
                android:padding="3dip" />
        </TableRow>
    
        <View
            android:layout_height="2dip"
            android:background="#FF909090" />
    
        <TableRow>
            <TextView
                android:layout_column="1"
                android:text="Quit"
                android:padding="3dip" />
        </TableRow>
    </TableLayout>
    

    Beachten Sie, wie dies der Struktur einer HTML-Tabelle ähnelt. Das TableLayout-Element entspricht dem HTML-<table>-Element und TableRow ist wie ein ><tr>>-Element. Für die Zellen können Sie jedoch ein beliebiges View-Element verwenden. In diesem Beispiel wird für jede Zelle ein TextView verwendet. Zwischen einigen Zeilen befindet sich auch ein grundlegender View, mit dem eine horizontale Linie gezeichnet wird.

  3. Achten Sie darauf, dass Ihre HelloTableLayout-Aktivität dieses Layout in der Methode onCreate() lädt:

    Kotlin

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.main)
    }
    

    Java

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    

    Die Methode setContentView(int) lädt die Layoutdatei für den Activity, die durch die Ressourcen-ID angegeben wird. R.layout.main bezieht sich auf die Layoutdatei res/layout/main.xml.

  4. Führen Sie die Anwendung aus.

Sie sollten Folgendes sehen: