TableLayout 是一种类似表格的布局,这种布局会把包含的元素以行和列进行排列。表格的列数为所有行中的最大列数;每一行可以是一个TableRow布局对象,也可以是普通的View对象,TableRow里面没一个元素占一列;TableLayout总列数由列数最多的那一行决定。
关于三种列的设置
collapseColumns:设置隐藏列,列ID从0开始,多个列的话用”,”分隔,例如android:shrinkColumns ="0,1,2"
stretchColumns:设置自动伸展列,列ID从0开始,多个列的话用”,”分隔,同上
shrinkColumns:设置自动收缩列,列ID从0开始,多个列的话用”,”分隔,同上
collapseColumns可以隐藏列,可以在有需要的时候调用setColumnCollapsed()动态设置列是否被隐藏。
对比stretchColumns和shrinkColumns
stretchColumns的View组件会填充整一行
[img]http://dl.iteye.com/upload/attachment/559395/2eec9c17-cf86-3ae7-b34b-d727e71604bd.jpg[/img]
而shrinkColumns在右边留下一定空间
[img]http://dl.iteye.com/upload/attachment/559389/41d77b59-1674-3e30-97f8-9250f5e0fbcc.jpg[/img]
在某一列不设置显示View时,stretchColumns在那一列留下一小块空间,然后其余可以显示的列填充整一列,特殊情况是不设置显示View的那一列的最后也不存在View,这些列即可以忽略。
[img]http://dl.iteye.com/upload/attachment/559397/be552eed-9adc-3a14-be60-800fc7c5aab2.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/559399/dcca1de6-11c6-3640-8d71-4cdd2559c9aa.jpg[/img]
shrinkColumns则是除了View在最后一列之外,只要前一列不存在任何View后一列就会向前移动,取代前一列的位置
[img]http://dl.iteye.com/upload/attachment/559391/5772d960-3b5e-3253-8b7f-2034a26c0392.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/559393/164f79fd-399e-3652-9897-62dac6f98da9.jpg[/img]
关于三种列的设置
collapseColumns:设置隐藏列,列ID从0开始,多个列的话用”,”分隔,例如android:shrinkColumns ="0,1,2"
stretchColumns:设置自动伸展列,列ID从0开始,多个列的话用”,”分隔,同上
shrinkColumns:设置自动收缩列,列ID从0开始,多个列的话用”,”分隔,同上
collapseColumns可以隐藏列,可以在有需要的时候调用setColumnCollapsed()动态设置列是否被隐藏。
<?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:shrinkColumns="0,1,2,3"
>
<TableRow>
<Button android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button1"
android:layout_column="0"/>
<Button android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button2"
android:layout_column="1"/>
</TableRow>
<TableRow>
<Button android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button3"
android:layout_column="2"/>
<Button android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button4"
android:layout_column="3"/>
</TableRow>
</TableLayout>
对比stretchColumns和shrinkColumns
stretchColumns的View组件会填充整一行
[img]http://dl.iteye.com/upload/attachment/559395/2eec9c17-cf86-3ae7-b34b-d727e71604bd.jpg[/img]
而shrinkColumns在右边留下一定空间
[img]http://dl.iteye.com/upload/attachment/559389/41d77b59-1674-3e30-97f8-9250f5e0fbcc.jpg[/img]
在某一列不设置显示View时,stretchColumns在那一列留下一小块空间,然后其余可以显示的列填充整一列,特殊情况是不设置显示View的那一列的最后也不存在View,这些列即可以忽略。
[img]http://dl.iteye.com/upload/attachment/559397/be552eed-9adc-3a14-be60-800fc7c5aab2.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/559399/dcca1de6-11c6-3640-8d71-4cdd2559c9aa.jpg[/img]
shrinkColumns则是除了View在最后一列之外,只要前一列不存在任何View后一列就会向前移动,取代前一列的位置
[img]http://dl.iteye.com/upload/attachment/559391/5772d960-3b5e-3253-8b7f-2034a26c0392.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/559393/164f79fd-399e-3652-9897-62dac6f98da9.jpg[/img]