Android TableLayout

分享到:

TableLayout表格布局控件,可以把子控件以行或列的方式摆放到屏幕上。每一行称为一个TableRow,每个TableRow又可以分为若干个单元格,很像我们平时用的Excel。有多少个TableRow对象就有多少行。TableLayout的列数由包含单元格数量最多的那一行决定(这里说的单元格数量通常指TableRow所包含子控件的数量)。如第一TableRow含1个单元格,第二个TableRow含2个,第三个TableRow含3个,那么该TableLayout的列数为3。

TableLayout XML属性:

android:stretchColumns 设置可伸展的列。该列可以向行方向伸展,最多可占据一整行。
例如:android:stretchColumns="0" 第0列可伸展
android:shrinkColumns 设置可收缩的列。当该列子控件的内容太多,已经挤满所在行,那么该子控件的内容将往列方向显示。
例如:android:shrinkColumns="1,2" 第1,2列皆可收缩
android:collapseColumns 设置要隐藏的列
例如:android:collapseColumns="*" 隐藏所有
说明:列可以同时具备stretchColumns及shrinkColumns属性,若此,那么当该列的内容N多时,将"多行"显示其内容。(这里不是真正的多行,而是系统根据需要自动调节该行的layout_height)
android:layout_column 指定该单元格在第几列显示
例如:android:layout_column="1" 该控件显示在第1列
android:layout_span 指定该单元格占据的列数(未指定时,为1)
例如:android:layout_span="2" 该控件占据2列

简单的TableLayout实例:(本例代码来自网络)

<?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="wrap_content"
android:stretchColumns="0,1,2" > //(此处表示第1,2,3列都自动填充屏幕)
<TableRow>
<TextView android:text="tmacsky1" />
<TextView android:text="tmacsky2" />
<TextView android:text="tmacsky3" />
</TableRow>
<TableRow>
<Button android:text="tmacsky1" />
<Button android:text="tmacsky2" />
<Button android:text="tmacsky3" />
</TableRow>
<TableRow>
<EditText />
<EditText />
<EditText />
</TableRow>
</TableLayout>

效果如下图:

TableLayout实例

TableLayout统合实例:(本例代码来自网络)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical"
          tools:context=".AndroidTableLayoutActivity" >
	<!-- 定义第一个表格,指定第2列允许收缩,第3列允许拉伸 -->
	<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/btn01"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="独自一行" >
  </Button>
         <TableRow>
         <Button
          android:id="@+id/btn02"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="普通" >
  </Button>
         <Button
          android:id="@+id/btn03"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="允许被收缩允许被收缩允许被收缩允许被收缩" >
  </Button>
         <Button
          android:id="@+id/btn04"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="允许被拉伸" >
  </Button>
  </TableRow>
  </TableLayout>
  <!-- 定义第2个表格,指定第2列隐藏 -->
         <TableLayout
          android:id="@+id/tablelayout02"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:collapseColumns="1" >
         <TableRow>
         <Button
          android:id="@+id/btn05"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="普通" >
  </Button>
         <Button
          android:id="@+id/btn06"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="被隐藏列" >
  </Button>
         <Button
          android:id="@+id/btn07"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="允许被拉伸" >
  </Button>
  </TableRow>
  </TableLayout>
  <!-- 定义第3个表格,指定第2列填满空白-->
         <TableLayout
          android:id="@+id/tablelayout03"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:stretchColumns="1"
  >
         <TableRow>
         <Button
          android:id="@+id/btn08"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="普通" >
  </Button>
         <Button
          android:id="@+id/btn09"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="填满剩余空白" >
  </Button>
  </TableRow>
  </TableLayout>
  <!-- 定义第3个表格,指定第2列横跨2列-->
         <TableLayout
          android:id="@+id/tablelayout04"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
  >
         <TableRow>
         <Button
          android:id="@+id/btn10"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="普通" >
  </Button>
  
  <Button
          android:id="@+id/btn11"
          android:layout_column="2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="填满剩余空白" >
  </Button>
  </TableRow>
  </TableLayout>
</LinearLayout>

效果如下图:

TableLayout实例

昵    称:
验证码:

相关文档:

Android控件
Android基础知识
Android组件
Android实例