表格布局由TableLayout所代表,表格布局采用行、列的形式来管理UI组件,TableLayout并不需要明确的声明包含多少行、多少列,而是添加TableRow、其他组件来控制表格的行数和列数。
每次向TableLayout中添加一个TableRow,该TableRow就是一个表格行,TableRow也是容器,因此它也可以不断的添加其他控件,每添加一个子控件该表格就增加一列。
如果直接向TableLayout中添加组件,那么这个组件将直接占用一行。
在表格布局中,列的宽度由该列中最宽的那个单元格决定,整个表格布局的宽度则取决于父容器的宽度(默认总是占满父容器的本身)。
在表格布局管理器中,可以为单元格设置如下三种行为方式:
1.Shrinkable:如果某个列被设置为Shrinkable,那么该列的所有单元格的宽度可以被收缩,以保证该单元格能适应父容器的宽度。
2.Stretchable:如果某个列被设置为Stretchable,那么该列的所有单元格的宽度可以被拉伸,以保证组件能完全填满表格空余空间。
3.Collapse:如果某个列被设置为Collapse,那么该列的所有单元格会被隐藏。
TableLayout的常用XML属性及相关方法
XML属性 | 相关方法 | 说 明 |
---|---|---|
android:collapseColumns | setColumncollapsed(int, boolean) | 设置需要被隐藏的列的列序号,多个列序号之间用逗号隔开 |
android:shrinkColumns | setShrinkAllColumns(boolean) | 设置允许被收缩的列的列序号,多个列序号之间用逗号隔开 |
android:stretchColumns | setStretchAllColumns(boolean) | 设置允许被拉伸的列的列序号,多个列序号之间用逗号隔开 |
收缩拉伸例子
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:shrinkColumns="1"
android:stretchColumns="2">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="独自一行的按钮"/>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="普通按钮"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="允许被收缩的按钮"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="允许被拉伸的按钮"/>
</TableRow>
</TableLayout>
效果如图:
TableLayout.jpg
隐藏例子
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:collapseColumns="1">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="独自一行的按钮"/>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第一个按钮"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第二个按钮"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第三个按钮"/>
</TableRow>
</TableLayout>
效果如图:
TableLayout.jpg
网友评论