Tablo

TableLayout, satır ve sütunlarda alt View öğelerini görüntüleyen bir ViewGroup değeridir.

Not: Daha iyi performans ve araç desteği için bunun yerine düzeninizi ConstraintLayout ile oluşturmanız gerekir.

TableLayout, alt öğelerini satırlar ve sütunlara yerleştirir. TableLayout kapsayıcıları; satırları, sütunları veya hücreleri için kenarlık çizgileri görüntülemez. Tabloda, en fazla hücrenin bulunduğu satır kadar sütun bulunur. Tablolar, hücreleri boş bırakabilir. Hücreler, HTML'de olduğu gibi birden çok sütunu kapsayabilir. TableRow.LayoutParams sınıfındaki span alanını kullanarak sütunları genişletebilirsiniz.

Not: Hücreler birden çok satıra yayılamaz.

TableRow nesne, bir TableLayout'un alt görünümleridir (her TableRow, tablodaki tek bir satırı tanımlar). Her satırda sıfır veya daha fazla hücre bulunur ve bu hücrelerin her biri başka bir Görünüm türüyle tanımlanır. Dolayısıyla, bir satırın hücreleri ImageView veya TextView nesneleri gibi çeşitli View nesnelerinden oluşabilir. Hücre, ViewGroup nesnesi de olabilir (örneğin, başka bir TableLayout'u hücre olarak iç içe yerleştirebilirsiniz).

Aşağıdaki örnek düzende her biri iki satır ve iki hücre bulunmaktadır. Eşlik eden ekran görüntüsünde ise hücre kenarlıkları noktalı çizgilerle (görsel efekt için eklenmiştir) görüntülenerek sonuç gösteriliyor.

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

Sütunlar gizlenebilir, mevcut ekran alanını genişletmek ve doldurmak için işaretlenebilir veya tablo ekrana sığıncaya kadar sütunun küçültülmesini sağlamak için daraltılabilir olarak işaretlenebilir. Daha fazla ayrıntı için TableLayout reference belgelerini inceleyin.

Örnek

  1. HelloTableLayout adlı yeni bir proje başlatın.
  2. res/layout/main.xml dosyasını açın ve aşağıdaki kodu ekleyin:
    <?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>
    

    Bunun, HTML tablosu yapısına nasıl benzediğine dikkat edin. TableLayout öğesi, HTML <table> öğesi; TableRow ise ><tr>> öğesi gibidir. Ancak hücreler için herhangi bir View öğesi kullanabilirsiniz. Bu örnekte, her hücre için bir TextView kullanılmıştır. Bazı satırların arasında, yatay bir çizgi çizmek için kullanılan temel bir View de bulunur.

  3. HelloTableLayout Etkinliğinizin bu düzeni onCreate() yöntemiyle yüklediğinden emin olun:

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

    setContentView(int) yöntemi, kaynak kimliğiyle belirtilen Activity düzen dosyasını yükler. R.layout.main, res/layout/main.xml düzen dosyasını belirtir.

  4. Uygulamayı çalıştırın.

Şu ekranı görmeniz gerekir: