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" />

```