TableLayout继承了LinearLayout,完全支持LinearLayout所有属性。他的本质依然是线性布局,通过行列来控制。
TableRow就是一行,直接向TableLayout添加组件,那么这个组件将直接占用一行。列的宽度该列中最宽的决定。每添加一个组件就增加一列
单元格设置:
- Shrinkable:某个列被设置为这个的话,那么该列的所有单元格的宽度可以被收缩,以保证该表格能适应父容器的宽度。
- Stretchable:某个列被设置为这个的话,那么该列的所有单元格的宽度可以被拉伸,以保证组件能完全填满表格空余空间。
- Collapsed:某个列被设置为这个的话,那么该列的所有单元格会被隐藏。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<!--定义第一个表格布局,指定第二列允许收缩,第三列允许拉伸,列从0开始算-->
<TableLayout
android:id="@+id/TableLayout01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:shrinkColumns="1"
android:stretchColumns="2">
<!--直接添加控件,他会占用一行-->
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="占用一行"
/>
<!--添加一个表格行-->
<TableRow>
<!--增加三个按钮,相当于增加三列-->
<Button
android:id="@+id/ok1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="普通按钮"
/>
<Button
android:id="@+id/ok2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="收缩按钮"
/>
<Button
android:id="@+id/ok3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="拉伸按钮"
/>
</TableRow>
</TableLayout>
<!--定义第二个表格布局,指定第二列隐藏-->
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:collapseColumns="1">
<Button
android:id="@+id/ok5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="独自一行的按钮"
/>
<TableRow>
<Button
android:id="@+id/ok6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="普通按钮"
/>
<Button
android:id="@+id/ok7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="隐藏按钮"
/>
<Button
android:id="@+id/ok8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="拉伸按钮"
/>
</TableRow>
</TableLayout>
<!--第三个表格布局,定义第二列和第三列可以被拉伸-->
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="1,2">
<Button
android:id="@+id/ok9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="独自一行的按钮"
/>
<TableRow>
<Button
android:id="@+id/ok10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="普通按钮"
/>
<Button
android:id="@+id/ok11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="拉伸按钮"
/>
<Button
android:id="@+id/ok12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="拉伸按钮"
/>
</TableRow>
</TableLayout>
</LinearLayout>