Android ApiDemos示例解析(156):Views->Layouts->TableLayout->01. Basic
上一篇:http://www.zzzyk.com/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>
补充:移动开发 , Android ,