1.FrameLayout (帧布局)
(1)显示特点:此布局并没有对child view的摆布进行控制,这个布局中所有的控件都会默认出现在视图的左上角,会重叠在一起显示.
(2)常用属性:使用android:layout_margin,android:layout_gravity等属性去控制子控件相对布局的位置。
2.LinearLayout (线性布局)
(1)显示特点:所有子控件按照横向或者竖向依次排列,android:orientation="vertical"(竖向),android:orientation="horizontal"(横向)。
(2)常用属性:
- gravity(控件本身内的重心位置)
- alyout_gravity(控件在父容器内的重心位置)
- layout_weight(权重值)
- weightSum(权重总和)
- divider分隔线:divider、showDividers、dividerPadding
3.RelativeLayout
(1)显示特点:所有子控件默认显示在RelativeLayout的左上角,它包含的子控件将以控件之间的相对位置或者子类控件相对父容器的位置的方式排列.
(2)常用属性:
- layout_toRightOf 在指定控件的右边
- layout_toLeftOf 在指定控件的左边
- layout_above 在指定控件的上边
- layout_below 在指定控件的下边子控件对齐关系
- layout_alignRight 与指定控件右对齐
- layout_alignLeft 与指定控件左对齐
- layout_alignTop 与指定控件上对齐
- layout_alignBottom与指定控件底部对齐
- layout_centerInParent 与父容器中间对齐
- layout_centerVertical 与父容器竖向中心对齐
- layout_centerHorizontal 与父容器横向中心对齐
- layout_alignParentLeft 与父容器左边对齐
- layout_alignParentTop 与父容器上边对齐
- layout_alignParentRight 与父容器右边对齐
- layout_alignParentBottom 与父容器下边对齐
4.TableLayout (表格布局)
(1)显示特点:表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象。如果我们直接往TableLayout中添加组件的话,那么这个组件将占满一行;如果我们想一行上有多个组件的话,就要添加一个TableRow的容器,把组件都丢到里面,表格布局不能跨行,只能跨列。
(2)常用属性:注意一列能同时表示收缩和拉伸,可以通过"*"代替收缩或拉伸所有列,以下这三个属性的列号都是从0开始算的
- android:collapseColumns = "1,2"隐藏从0开始的索引列。
- android:shrinkColumns="1,2" 收缩从0开始的索引列。
- android:stretchColumns = "1,2"拉伸从0开始的索引。
- 对于<TableRow></TableRow>内的控件而言
- android:layout_column = "1" 表示该控件显示在第2列
- android:layout_span = "2" 表示该控件占据2列
5.GridLayout(网格布局)
(1)显示特点:所有子控件默认在GridLayout中横向依次排列,当只等每行的列数到达指定列数时会自动换行显示,和其他布局不同,可以不为组件设置Layout_width和Layout_height属性,因为组件的宽高由几行几列决定了,当然,你也可以写个wrap_content
(2)常用属性:
- 设置组件的排列方式: android:orientation="" vertical(竖直)horizontal(水平)
- 设置组件的对齐方式: android:layout_gravity="" center,left,right,buttom
- 设置有多少行:android:rowCount="4" //设置网格布局有4行
- 设置有多少列:android:columnCount="4" //设置网格布局有4列
- 组件在第几行:android:layout_row = "1" //设置组件位于第二行
- 组件在第几列:android:layout_column = "2" //设置该组件位于第三列
- 横跨几行:android:layout_rowSpan = "2" //纵向横跨2行
- 横跨几列:android:layout_columnSpan = "3" //横向横跨2列
6.AbsoluteLayout (绝对布局)
(1)显示特点:可以直接指定子元素的绝对位置(x,y)但是由于手机屏幕尺寸差别较大,使用绝对定位的适应性会比较差,在屏幕的适配上有缺陷
(2)常用属性:
- android:layout_x = "32dp" 控制当前子类控件的x位置
- android:layout_y = "32dp" 控制当前子类控件的y位置