上一篇:/kf/201209/153078.html
TableLayout 以表格形式(行和列)來佈置其子View。一個TableLayout 可以包含多個TableRow對象,每個TableRow 定義瞭表格的一行(實際上也可以使用其它類型的子View),TableLayout不顯示行、列或是單元格邊界線。每行可以包括0個或多個單元格,每個單元格可以顯示一個子View。最終表格的列數有含有最多單元格的那行來決定。一個表格可以含有空單元格,單元格也可以占據多列(和HTML類似)。
列寬取決於該列中最寬的單元格,然而TableLayout可以為某些列指定縮放屬性,如果指定shrinkable ,該類可以縮小以適應父容器。如果指定stretchable ,則該列可以拉伸充滿單元格。表格的寬度由其父容器決定,單元格可以同時指定shrinkable和stretchable,此時該單元格將永遠被View充滿。隱藏一列可以調用setColumnCollapsed().
TableLayout 的子View不能指定layout_width 屬性,它的值總是MATCH_PARENT, 而layout_height 可以指定,缺省為WRAP_CONTENT, 如果TableLayout 的子View類型為TableRow 時layout_height 總為WRAP_CONTENT.
單元格必須依次添加到每行中(XML或是代碼),列的序號從0開始,如果沒有為單元格指定類的序號,則自動添加到下一列中,如果跳過某個列,則跳過的類被認為是空單元格。
如果不使用TableRow 做為TableLayout的子類,在該行的View被認為占據所有列。
本例顯示瞭TableLayout 的基本用法,使用TableRow 定義瞭三行,每行有3個TextView,每列的列寬有該列最寬的單元格決定:
[html]
<TableLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”match_parent”
android:layout_height=”match_parent”>
<TableRow>
<TextView
android:text=”@string/table_layout_1_star”
android:padding=”3dip” />
<TextView
android:text=”@string/table_layout_1_open”
android:padding=”3dip” />
<TextView
android:text=”@string/table_layout_1_open_shortcut”
android:padding=”3dip” />
</TableRow>
<TableRow>
<TextView
android:text=”@string/table_layout_1_triple_star”
android:padding=”3dip” />
<TextView
android:text=”@string/table_layout_1_save”
android:padding=”3dip” />
<TextView
android:text=”@string/table_layout_1_save_shortcut”
android:padding=”3dip” />
</TableRow>
<TableRow>
<TextView
android:text=”@string/table_layout_1_star”
android:padding=”3dip” />
<TextView
android:text=”@string/table_layout_1_quit”
android:padding=”3dip” />
<TextView
android:text=”@string/table_layout_1_quit_shortcut”
android:padding=”3dip” />
</TableRow>
</TableLayout>
<TableLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”match_parent”
android:layout_height=”match_parent”>
<TableRow>
<TextView
android:text=”@string/table_layout_1_star”
android:padding=”3dip” />
<TextView
android:text=”@string/table_layout_1_open”
android:padding=”3dip” />
<TextView
android:text=”@string/table_layout_1_open_shortcut”
android:padding=”3dip” />
</TableRow>
<TableRow>
<TextView
android:text=”@string/table_layout_1_triple_star”
android:padding=”3dip” />
<TextView
android:text=”@string/table_layout_1_save”
android:padding=”3dip” />
<TextView
android:text=”@string/table_layout_1_save_shortcut”
android:padding=”3dip” />
</TableRow>
<TableRow>
<TextView
android:text=”@string/table_layout_1_star”
android:padding=”3dip” />
<TextView
android:text=”@string/table_layout_1_quit”
android:padding=”3dip” />
<TextView
android:text=”@string/table_layout_1_quit_shortcut”
android:padding=”3dip” />
</TableRow>
</TableLayout>