TableLayout(表格布局)是一种适用于N行N列的布局格式,由多个TableRow组成,每个TableRow代表一行。它继承了LinearLayout,因此完全支持LinearLayout的所有XML属性。
TableRow是LinearLayout的子类,其Android:orientation属性值恒为horizontal,Android:Layout_width和Android:Layout_hight属性值恒为MATCH_PARENT和WRAP_CONTENT。所有子元素都横向排列,宽高一致,单元格可以为空,但不能跨列。
表格布局以行、列的形式管理UI组件,使用标记定义。在表格布局中,可以添加多个标记,每个标记占用一行。标记也是容器,可以在标记内添加其他组件,每添加一个组件,表格就会增加一列。列可以被隐藏、设置为伸展或强制收缩,以填充屏幕空间。
在Android中,可以在XML布局文件中定义表格布局管理器,也可以使用Java代码创建。推荐使用前者。
以下是一个简单的代码示例:
```xml
android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> android:layout_width="fill_parent" android:layout_height="wrap_content">
```
重构后的代码如下:
```xml
android:layout_width="fill_parent" android:layout_height="wrap_content"> android:background="#ffffffff" android:gravity="center" android:padding="10dp" android:text="1"/>
android:layout_width="fill_parent" android:layout_height="wrap_content"> android:background="#ff654321" android:gravity="center" android:padding="10dp" android:text="2"/>
android:layout_width="fill_parent" android:layout_height="wrap_content"> android:background="#fffedcba" android:gravity="center" android:padding="10dp" android:text="3"/>
```
```xml
android:layout_width="match_parent" android:layout_height="wrap_content"> android:background="#fffedcba" android:gravity="center" android:padding="10dp" android:text="3" /> android:background="#ff654321" android:gravity="center" android:padding="10dp" android:text="2" /> android:background="#ffffffff" android:gravity="center" android:padding="10dp" android:text="1" />
```