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
- Avvia un nuovo progetto denominato HelloTableLayout.
- 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 elementoView
. In questo esempio, Per ogni cella viene utilizzatoTextView
. Tra alcune righe è presente anche baseView
, utilizzata per tracciare una linea orizzontale. - 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 perActivity
, specificato dalla risorsa ID -R.layout.main
si riferisce al layoutres/layout/main.xml
. - Esegui l'applicazione.
Dovresti vedere quanto segue: