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
- HelloTableLayout adlı yeni bir proje başlatın.
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 birView
öğesi kullanabilirsiniz. Bu örnekte, her hücre için birTextView
kullanılmıştır. Bazı satırların arasında, yatay bir çizgi çizmek için kullanılan temel birView
de bulunur.- 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 belirtilenActivity
düzen dosyasını yükler.R.layout.main
,res/layout/main.xml
düzen dosyasını belirtir. - Uygulamayı çalıştırın.
Şu ekranı görmeniz gerekir: