Android ApiDemos示例解析(156):Views->Layouts->TableLayout->01. Basic

上一篇:/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>


 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *