本文来自: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,则控件自动向垂直
方向填充空间