Tabel

TableLayout adalah ViewGroup yang menampilkan elemen View turunan dalam baris dan kolom.

Catatan: Agar dukungan alat dan performa lebih baik, Anda harus mem-build tata letak dengan ConstraintLayout.

TableLayout menempatkan turunannya ke dalam baris dan kolom. Container TableLayout tidak menampilkan garis batas untuk baris, kolom, atau selnya. Tabel ini akan memiliki jumlah kolom sebanyak jumlah baris yang memiliki sel terbanyak. Tabel dapat membiarkan sel kosong. Sel dapat mencakup beberapa kolom, seperti dalam HTML. Anda dapat memperluas kolom menggunakan kolom span di class TableRow.LayoutParams.

Catatan: Sel tidak dapat mencakup beberapa baris.

Objek TableRow adalah tampilan turunan TableLayout (setiap TableRow menentukan satu baris dalam tabel). Setiap baris memiliki nol atau beberapa sel, yang masing-masing ditentukan oleh jenis View lain apa pun. Jadi, sel sebuah baris dapat tersusun atas berbagai objek View, seperti objek ImageView atau TextView. Sel juga dapat berupa objek ViewGroup (misalnya, Anda dapat menyarangkan TableLayout lain sebagai sel).

Tata letak contoh berikut memiliki dua baris dan dua sel di setiap barisnya. Screenshot yang menyertainya menunjukkan hasil, dengan batas sel ditampilkan sebagai garis putus-putus (ditambahkan untuk efek visual).

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

Kolom dapat disembunyikan, ditandai agar terentang dan mengisi ruang layar yang tersedia, atau ditandai sebagai bisa disusutkan untuk memaksa kolom agar menyusut hingga tabel pas dengan layar. Lihat dokumentasi TableLayout reference untuk detail selengkapnya.

Contoh

  1. Mulai project baru dengan nama HelloTableLayout.
  2. Buka file res/layout/main.xml dan masukkan kode berikut:
    <?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>
    

    Perhatikan bahwa ini menyerupai struktur tabel HTML. Elemen TableLayout menyerupai elemen <table> HTML; TableRow menyerupai elemen ><tr>>; tetapi untuk sel, Anda dapat menggunakan jenis elemen View apa pun. Dalam contoh ini, TextView digunakan untuk setiap sel. Di antara beberapa baris tersebut, ada juga View dasar, yang digunakan untuk menggambar garis horizontal.

  3. Pastikan Aktivitas HelloTableLayout memuat tata letak ini dalam metode 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);
    }
    

    Metode setContentView(int) memuat file tata letak untuk Activity, yang ditentukan oleh ID resource — R.layout.main mengacu pada file tata letak res/layout/main.xml.

  4. Jalankan aplikasi.

Anda akan melihat berikut ini: