Tavola

TableLayout è un ViewGroup che mostra gli elementi View secondari in righe e colonne.

Nota: Per migliorare le prestazioni e il supporto degli strumenti, devi invece creare il tuo layout con ConstraintLayout.

TableLayout posiziona gli elementi secondari in righe e colonne. I container TableLayout non mostrano linee di bordo per le righe colonne o celle. La tabella avrà un numero di colonne pari alla riga con la maggior parte delle celle. Una tabella può lasciare le celle vuote. Le celle possono abbracciare più colonne come nell'HTML. Puoi estendere le colonne utilizzando span nella classe TableRow.LayoutParams.

Nota: le celle non possono coprire più righe.

TableRow oggetti sono le visualizzazioni secondarie di un TableLayout (ogni TableRow definisce una singola riga nella tabella). Ogni riga ha zero o più celle, ciascuna delle quali è definita da un qualsiasi tipo di altra vista. Quindi, le celle di una riga può essere composta da vari oggetti View, come ImageView Oggetti TextView. Una cella può essere anche un oggetto ViewGroup (ad esempio, può nidificare un'altra TableLayout come cella).

Il seguente layout di esempio contiene due righe e due celle ciascuna. La screenshot associato mostra il risultato, con i bordi delle celle visualizzati tratteggiate (aggiunto per l'effetto visivo).

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

Le colonne possono essere nascoste, contrassegnate in modo da allungare e riempire lo spazio disponibile sullo schermo. oppure può essere contrassegnato come riducibile per forzare la colonna a ridursi fino a quando si adatta allo schermo. Consulta TableLayout reference documentazione per ulteriori dettagli.

Esempio

  1. Avvia un nuovo progetto denominato HelloTableLayout.
  2. Apri il file res/layout/main.xml e inserisci quanto segue:
    <?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>
    

    Nota che assomiglia alla struttura di una tabella HTML. TableLayout è come l'elemento HTML <table>; TableRow è simile un elemento ><tr>>; ma per le celle puoi usare qualsiasi tipo di elemento View. In questo esempio, Per ogni cella viene utilizzato TextView. Tra alcune righe è presente anche base View, utilizzata per tracciare una linea orizzontale.

  3. Assicurati che la tua attività HelloTableLayout carichi questo layout nella Metodo onCreate():

    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);
    }
    

    Il metodo setContentView(int) carica file di layout per Activity, specificato dalla risorsa ID - R.layout.main si riferisce al layout res/layout/main.xml .

  4. Esegui l'applicazione.

Dovresti vedere quanto segue: