表格布局如同一个一个表格,有多个TableRow组成。每个TableRow是一行:

在TableLayout中还有几个属性:

shrinkColumns属性:

以0为序,当TableRow里面的控件布满布局时,指定列自动延伸以填充可用部分。当TableRow里面的控件木有布满布局时,shrinkColumns不起作用

stretchColumns属性:

以第0行为序,指定列对空白部分进行填充

如下示例代码:

<?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="fill_parent"

android:stretchColumns="1"

>

<TableRow>

<Button android:text="@string/button1" />

<Button android:text="@string/button2"/>

</TableRow>

<TableRow>

<Button android:text="@string/button5"/>

<Button android:text="@string/button6"/>

</TableRow>

<TableRow>

<Button android:text="@string/button9"/>

<Button android:text="@string/button10"/>

</TableRow>

</TableLayout>

这个是设置了stretchColumns的截图:

下面的代码是木有设置shrinkColumns的

<?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="fill_parent"

>

<TableRow>

<Button android:text="@string/button1" />

<Button android:text="@string/button2"/>

<Button android:text="@string/button3"/>

<Button android:text="@string/button4"/>

</TableRow>

<TableRow>

<Button android:text="@string/button5"/>

<Button android:text="@string/button6"/>

<Button android:text="@string/button7"/>

<Button android:text="@string/button8"/>

</TableRow>

<TableRow>

<Button android:text="@string/button9"/>

<Button android:text="@string/button10"/>

<Button android:text="@string/button11"/>

<Button android:text="@string/button12"/>

</TableRow>

</TableLayout>

运行结果如下图所示:

设置了shrinkColumns属性之后:

运行结果如下:

collapseColumns属性:

以第0行为序,影藏指定的列

代码如下:

<?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="fill_parent"

android:collapseColumns="2"

>

<TableRow>

<Button android:text="@string/button1" />

<Button android:text="@string/button2"/>

<Button android:text="@string/button3"/>

</TableRow>

<TableRow>

<Button android:text="@string/button5"/>

<Button android:text="@string/button6"/>

<Button android:text="@string/button7"/>

</TableRow>

<TableRow>

<Button android:text="@string/button9"/>

<Button android:text="@string/button10"/>

<Button android:text="@string/button11"/>

</TableRow>

</TableLayout>

运行如下:影藏了第三列

layout_column属性:以第0行为序,设置组件显示在指定列

layout_span属性:以第0行为序,设置组件显示占用的列数

代码如下:

<?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="fill_parent"

>

<TableRow>

<Button android:text="@string/button1" android:layout_span="3" />

<Button android:text="@string/button2"/>

</TableRow>

<TableRow>

<Button android:text="@string/button5" android:layout_column="2"/>

<Button android:text="@string/button6" android:layout_column="0"/>

</TableRow>

<TableRow>

<Button android:text="@string/button9"/>

<Button android:text="@string/button10"/>

</TableRow>

</TableLayout>

运行如下:




button5组件被设置显示在了第3列的话。另一个组件button6并木有按照设置显示在第一列,原因在于表格的布局中。TableRow一行里的组件都会自动放在前一组件的右侧,一次排列,所以只要TableRow行中的第一个组件确定了所在列,其后者就无法再次进行位置设定了。。。