Android UI之TableLayout(表格布局)

说明:表格布局采用常见的表格方式来表示布局,与上文中提到的android:weight属性显示出来的效果有些相似。而事实上,TableLayout的确是LinearLayout的子类,因此本质上还是线性布局。实际开发中,我们经常会采用adnroid:weight属性来代替表格布局。
跟在html中写表格有点类似,在TableLayout中,我们可以通过TableRow标签来为表格添加一个新的行。与html不同的是,只要包裹在TableLayout中,一个组件也可以成为一个新的行,如:


    

上面的代码会绘制出一个占据了整个父容器宽度的Button组件。
TableLayout中的列是由列数最大的行决定的,比如:一个TabLeLayout有两行,第一行有三列,第二行有五列,那么这个表格的就是3*5的。每列的最大宽度,同样由最宽的列来决定。

在表格布局中,我们需要关注的属性有三个,都是对单元格进行设置的属性:

1 android:shrinkColumns

对应方法:setShrinkAllColumns(boolean)
说明:用来设置被允许收缩的列,多个列号之间可以用“,”隔开。
这里所谓的收缩就是当单元格中的内容(比如文字)超过了单元格的宽度,可以通过换行来收缩其实际长度,以满足所有单元格不超出父容器的宽度。

2 android:stretchColumns

对应方法:setStretchAllCoulums(boolean)
说明:用来设置允许被拉伸的列,多个列号之间可以用“,”隔开。
比如说如果所有的列加起来都没有填充满父容器的宽度,就一可以通过将设置了该属性的单元格进行拉伸,来填满父容器。

3 android:collapseColumns

对应方法:setCollapseColumns(int,boolean)
说明:设置需要被隐藏的列,多个列号之间可以用“,”隔开。
被设置的列中所有行的单元格都会被隐藏。

注意:这里说的列号是从0开始的。

下面是demo和实际效果。


    
    

收缩效果:
收缩效果
第二列中多出来的文字被挤到了下一行。

拉伸效果:
拉伸效果
当所有单元格的宽度和小于父容器宽度,被拉伸列就会自动拉伸到填满父容器。

表格列数是由列数最多的行决定的:
表格列数是由列数最多的行决定的

附:引用声明

《疯狂Android讲义(第二版)》 李刚 《2.2.2 表格布局》 电子工业出版社

你可能感兴趣的:(Android,UI)