TableLayout继承了LinearLayout,他的本质依然是线性布局管理器
TableLayout并不需要明确地生命包含多少行、多少列,而是通过TableRow、其他组件来控制表格的行数和列数
每次向TableLayout中添加一个TableRow,该TableRow就是一个表格行,TableRow也是容器,每往其中添加一个子组件就是增加一列
在android表格布局管理器中,可以为单元格设置如下三种行为方式:
Shrinkable:如果某个列被设置为此,那么该列的所有单元格的宽度可以被收缩,以保证该表格能适应父容器的宽度
Stretchable:如果某个列被设置为此,那么该列的所有单元格的宽度可以被拉伸,以保证组件能完全填满表格剩余空间
Collapsed:如果某个列被设为此,那么该列的所有单元格将被隐藏。
值得一提的是:android中,列是从0开始的。
以下例子中
第一个TableLayout,指定第2列允许收缩,第3列允许拉伸
第二个TableLayout,指定第2列被隐藏
第三个TableLayout,指定第2列和第3列允许拉伸
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TableLayout android:id="@+id/TableLayout01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:shrinkColumns="1"
android:stretchColumns="2">
<Button android:id="@+id/ok1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="独自一行的按钮"/>
<TableRow >
<Button android:id="@+id/ok2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="普通按钮"/>
<Button android:id="@+id/ok3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="收缩的按钮"/>
<Button android:id="@+id/ok4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拉伸的按钮"/>
</TableRow>
</TableLayout>
<TableLayout android:id="@+id/TableLayout01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:collapseColumns="1">
<Button android:id="@+id/ok5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="独自一行的按钮"/>
<TableRow >
<Button android:id="@+id/ok6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="普通按钮"/>
<Button android:id="@+id/ok7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="收缩的按钮"/>
<Button android:id="@+id/ok8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拉伸的按钮"/>
</TableRow>
</TableLayout>
<TableLayout android:id="@id/TableLayout01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1,2">
<Button android:id="@+id/ok9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="独自一行的按钮"/>
<TableRow >
<Button android:id="@+id/ok10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="普通按钮"/>
<Button android:id="@+id/ok11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="收缩的按钮"/>
<Button android:id="@+id/ok12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拉伸的按钮"/>
</TableRow>
</TableLayout>
</LinearLayout>
效果如下: