重拾Android的快乐-TableLayout布局
说明 TableLayout 是一个用来以行或者列方式来显示子View的视图组。TableLayout不显示行、列或者单元格的边框线。一个表可以留空多个单元格,也可以跨越多列,这个与html类似 TableRow TabRow是 TableLayout 的子View,用来表示一行,此元素下可以定义多个单元格来包含其它元素,单元格又可以嵌套 TableLayout 约束 列的宽度由该列中最宽单元格的行定义 TableLayout 子类不能指定 layout_width 属性,宽度值一直为 MATCH_PARENT layout_height 属性可以由子类进行设置,默认值为 WRAP_CONTENT ;如果子类是 TableRow ,则其高度值一直为 WRAP_CONTENT 常用属性 android:collapseColumns 基于索引0来隐藏列,多个值用英文逗号分隔,例如配置为1,则隐藏第2列 table中的列索引从0开始计数,如果不指定,则自动增加 android:shrinkColumns 基于索引0来收缩列 android:stretchColumns 基于索引0来拉升列 示例 效果图 代码 <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:stretchColumns="1"> <TableRow> <TextView android:layout_column="1" android:text="Open..." android:padding="3dip" /> <TextView android:text="Ctrl-O" android:gravity="right" android:padding="3dip" /> </TableRow> <TableRow> <TextView android:layout_column="1" android:text="Save..." android:padding="3dip" /> <TextView android:text="Ctrl-S" android:gravity="right" android:padding="3dip" /> </TableRow> <TableRow> <TextView android:layout_column="1" android:text="Save As..." android:padding="3dip" /> <TextView android:text="Ctrl-Shift-S" android:gravity="right" android:padding="3dip" /> </TableRow> <View android:layout_height="2dip" android:background="#FF909090" /> <TableRow> <TextView android:text="X" android:padding="3dip" /> <TextView android:text="Import..." android:padding="3dip" /> </TableRow> <TableRow> <TextView android:text="X" android:padding="3dip" /> <TextView android:text="Export..." android:padding="3dip" /> <TextView android:text="Ctrl-E" android:gravity="right" android:padding="3dip" /> </TableRow> <View android:layout_height="2dip" android:background="#FF909090" /> <TableRow> <TextView android:layout_column="1" android:text="Quit" android:padding="3dip" /> </TableRow> </TableLayout> 因为在 TableLayout 中设置了 android:stretchColumns="1" 属性来拉升第一列,可以看到第一列的宽度最宽