本文来自:http://ipfire.iteye.com/blog/976373
TableLayout说明:
1:TableLyaout 提供了android:layout_span,可以使用此属性让一个单元格跨越多列 ,相当于 HTML 的 colspan属性
2:TableLayout的子控件不能指定android:layout_width="wrap_content",它们会被强制接受fill_parent
3.TableLayout的内容是使用行来定义的,而不是使用列,Android通过查找包含最多单元格的行来确定表格中的列数
测试:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }
layout文件:
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:collapseColumns="3,4,5" android:stretchColumns="1,2" android:shrinkColumns="0,6" > <TableRow > <Button android:text="AA00"/> <Button android:text="BB11"/> <Button android:text="CC22"/> <Button android:text="DD33"/> <Button android:text="EE44"/> <Button android:text="FF55"/> <Button android:text="XXXXXXXXXXXXXXXXXX"/> </TableRow> <TableRow > <Button android:text="AA00"/> <Button android:text="BB11"/> <Button android:text="CC22"/> <Button android:text="XXXXXXXXXXXXXXXXXX"/> </TableRow> <TableRow > <Button android:text="AA00"/> <Button android:text="BB11" android:layout_span="2"/> <Button android:text="CC22"/> </TableRow> <Button android:text="BUTTON" android:layout_width="wrap_content" android:gravity="center"/> </TableLayout>
属性说明:
collapseColumns(隐藏)
设置 TableLayout 内的 TableRow 中需要隐藏的列的列索引,多个用“,”隔开
1.android:collapseColumns:以第0行为序,隐藏指定的列:把
android:collapseColumns=0,3 意思是把第0和第3列隐藏 ,即AA00,DD33隐藏
stretchColumns(拉伸)
设置 TableLayout 内的 TableRow 中需要拉伸(该列会拉伸到所有可用空间)
的列的列索引,多列个用“,”隔开(多列 每列填充空隙大小一样)
当LayoutRow里面的控件已经布满布局时,shrinkColumns不起作用,设置了
stretchColumns="1,2",布局完全没有改变,因为LayoutRow里面已经没有 空间了。
shrinkColumns (收缩)
设置 TableLayout 内的 TableRow 中需要收缩(为了使其他列不会被挤到屏幕外,此列会自动收缩)的列的列索引,多个用“,”隔开
当LayoutRow里面的控件还没有布满布局时,shrinkColumns不起作用,设置了
shrinkColumns布局完全没有改变,因为LayoutRow里面还剩足够的
空间。当LayoutRow布满控件时,设置了shrinkColumns,则控件自动向垂直
方向填充空间