TableLayout

顾名思义,TableLayout可以用了创建类似表格的布局。但是,TableLayout是以多个TableRow为子视图的,每一个TableRow代表一行。每一行可以由0个、1个或者多个单元格构成。每一个单元格则可以容纳其它View组件,如TextView、Button和EditTextView等,亦可以留空,不容纳其它组件。同时,每一个单元格也可以与连续相邻的单元格合并。

1)TableLayout中的列
列的宽度是由同一列中的最大宽度的单元格决定的。每个列都可以定义可伸缩的属性,设置可收缩属性用方法setColumnShrinkable(),设置可扩展属性用方法setColumnStretchable().若设置为可收缩(可扩展),则TableLayout会自动适应父视图(填补父视图的可用空间)。若要隐藏一个列,则可以使用setColumnCollapsed().这三个属性也可以通过XML属性来设置,记住,第一列的索引值为0。

TableLayout_第1张图片
Paste_Image.png

2)TableLayout的子视图
子视图不能定义layout_width的值,其值默认为match_parent.layout_height的值则可以自由设定。如果子视图为TableRow是,layout_height的值则应该为match_parent.一般来说,TableLayout的子视图都应是TableRow。如果往TableLayout添加其他子视图,则该子视图独立占用一行。

3)TableLayout.LayoutParams
TableLayout.LayoutParams为TableLayout的内部类,用来为各行设置属性。
如:
tableRow.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.MATCH_PARENT, 1.0f));

你可能感兴趣的:(TableLayout)