www.cftea.com

Visual Studio 开发安卓之布局-表格布局(TableLayout)

千一网络(原创)2016/11/5 10:18:36

认识 TableLayout、TableRow

表格布局(TableLayout)的标签名称是 TableLayout,下有标签 TableRow。就像 HTML 的 table、tr 一样,但你会发现没有跟 td 对应的单元格标签。

原来,在这里,里面的控件就是单元格,直接把控件往 TableRow 中放就是了。

“单元格”的 layout_column

  • 第一行有两列。
  • 第二行只有一列,该列默认是第 1 列。
  • 第三行也只有一列,由于指定了 layout_column="1",所以该列为第 2 列(从 0 开始,layout_column="0" 才是第 1 列)。

效果如下:

表格布局(TableLayout)layout_column

如果这样写呢?

第一个按钮和第二个按钮,会不会交换位置呢?不会。第二个按钮的 android:layout_column 设置值无效,因为第一个按钮前面已经设置 1 了,所以第二个按钮必须设置为 > 1,或者不设置。

“单元格”的 layout_span

和 HTML 的 colspan 意思相近,效果如下(注意:如果你用的其他控件,其宽度不一定会拉伸):

表格布局(TableLayout)layout_span

TableLayout 属性 stretchColumns

stretchColumns 用于 TableLayout 标签,参数值为列序号(第 1 列为 0),多个列之间用逗号隔开。其效果嘛,就是尽量拉伸单元格。看示例:

上述代码没有指定 stretchColumns,效果如下:

表格布局(TableLayout)stretchColumns

再看看指定了的:

其效果就是该单元格(控件)尽量拉伸(挤满上层元素空白)(注意:如果你用的其他控件,其宽度不一定会拉伸):

表格布局(TableLayout)stretchColumns

TableLayout 属性 shrinkColumns

shrinkColumns 用于 TableLayout 标签,和 stretchColumns 用法一样,但效果相反,就不贴代码了,只贴效果。

shrinkColumns 之前的效果:

表格布局(TableLayout)stretchColumns

shrinkColumns 之后的效果:

表格布局(TableLayout)stretchColumns

TableLayout 属性 collapseColumns

collapseColumns 用于 TableLayout 标签,和 stretchColumns 用法一样。

它的意思就是隐藏指定的列,让指定的列不显示出来。注意:它和 HTML 中的边框 collapse 是两回事。

<<返回首页<<