Tablo

TableLayout, şu özelliklere sahip bir ViewGroup: Satır ve sütunlarda alt View öğelerini görüntüler.

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

TableLayout, alt öğelerini satırlara ve sütunlarından birini tıklayın. TableLayout kapsayıcıları, satırları için kenarlık çizgileri görüntülemez, hücre veya sütun olabilir. Tabloda, yapabilirsiniz. Bir tablo, hücreleri boş bırakabilir. Hücreler birden çok sütunu kapsayabilir, yapabiliyorlar. span kullanarak sütunları kapsaabilirsiniz alanına TableRow.LayoutParams ekleyin.

Not: Hücreler birden çok satırı kapsayamaz.

TableRow nesne, bir TableLayout'un alt görünümleri (her TableRow, tabloda tek bir satırı tanımlar). Her satırda sıfır veya daha fazla satır var her biri başka bir Görünüm türü tarafından tanımlanan hücreler. Dolayısıyla, bir satır, ImageView gibi çeşitli View nesnelerinden oluşabilir veya TextView nesneleri. Bir hücre aynı zamanda bir ViewGroup nesnesi olabilir (örneğin, başka bir TableLayout öğesini hücre olarak iç içe yerleştirebilir).

Aşağıdaki örnek düzende her birinde iki satır ve iki hücre vardır. İlgili içeriği oluşturmak için kullanılan ekran görüntüsünde sonuç gösterilir ve hücre kenarlıkları noktalı çizgiler (görsel efekt için eklenmiştir).

<?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 üzere işaretlenebilir, veya sütunu tabloya kadar küçülmeye zorlamak için daraltılabilir olarak işaretlenebilir. ekrana sığdığından emin olun. TableLayout reference inceleyin. dokümanlarına göz atabilirsiniz.

Örnek

  1. HelloTableLayout adlı yeni bir proje başlatın.
  2. res/layout/main.xml dosyasını açın ve aşağıdakini 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 bir HTML tablosunun yapısına nasıl benzediğine dikkat edin. TableLayout öğesi, HTML <table> öğesine benzer; TableRow benzer ><tr>> öğesi; ancak hücreler için herhangi bir tür View öğesi kullanabilirsiniz. Bu örnekte Her hücre için TextView kullanılır. Bazı satırların arasında temel View, yatay bir çizgi çizmek için kullanılır.

  3. HelloTableLayout Etkinliğinizin onCreate() yöntemi:

    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, Activity için kaynak tarafından belirtilen düzen dosyası Kimlik — R.layout.main, res/layout/main.xml düzenini belirtir dosyası olarak kaydedebilirsiniz.

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

Aşağıdaki ekranı görmeniz gerekir: