表格布局如同一个一个表格,有多个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行中的第一个组件确定了所在列,其后者就无法再次进行位置设定了。。。