一. 简介

TableLayout是将子类向分别排列成行和列的布局视图容器,TableLayout是由许多TableRow对象组成的,表格布局以行列的形式管理子控件,每一个单元是一个TableRow或者View对象。

在TableLayout中可以通过setConlumnShrinkable()setConlumnStretchable()方法来指定某些列为可以缩小或可伸缩,列是从0开始计数的,第一列为0。

二. Xml方式

1. 所有的布局共有的属性

① View在左上右下四个方向和其他View之间的距离,值是 dp

1
2
3
4
android:layout_marginStart (android:layout_marginLeft) 
android:layout_marginTop
android:layout_marginEnd (android:layout_marginRight)
android:layout_marginBottom

② View内部元素到View左上右下边框之间的距离,值是 dp

1
2
3
4
android:paddingStart (android:paddingLeft)
android:paddingTop
android:paddingEnd (android:paddingRight)
android:paddingBottom

③ 容器 内部的对齐方式 以及 容器相对于父容器的对齐方式

1
2
android:gravity         //设置布局管理器内组件的对齐方式
android:layout_gravity //设置布局本身相对于父视图的位置

2. TableLayout

① 拉伸列

stretchColumns 设置运行被拉伸的列的序号,如果要所有列一起填补空白,则用*符号,列号都是从0开始算的。

上图中按钮2被拉伸来替补空白。

② 收缩列

shrinkColumns 设置被收缩的列的序号 ,收缩是用于在一行中列太多或者某列的内容文本过长,会导致某列的内容会被挤出屏幕,这个属性是可以帮助某列的内容进行收缩,用于防止被挤出的。

上图中又在上面布局添加按钮5,此时 android:shrinkColumns="1",按钮2被收缩了。

③ 隐藏列

collapseColumns 设置需要被隐藏的列的序号 使用该属性可以隐藏某列。

上图中在上面的布局中添加 android:collapseColumns="1",原来的按钮2被隐藏了。

④ 控制列

layout_column为该子类控件显示在第几列。android:layout_column="2"表示跳过第二个,直接显示在第三个单元格内。

⑤ 合并列

layout_span 为该子类控件占据第几列。android:layout_span="3" 表示合并3个单元格,就是这个组件将占据3个单元格。

参考文章

六大布局之非常用布局