一共有五种页面布局:
1.LinearLayout 线性布局
2.RelativeLayout 相对布局
3.FreameLayout 帧布局(框架布局)
4.AbsoluteLayout 绝对布局
5.TableLayout 表格布局
--------LinearLayout线性布局
LinearLayout是线性布局控件,它包含的子控件将以横向或纵向的方式排布
LinearLayout本身常用到的两个属性
Android:orientation = “vertical” ---该属性决定他子控件的排布方式(vertical 垂直,horizontal 水平)
Android:gravity = “center” ---该属性决定他的子控件的xy的位置
(常用的属性值:多个连用用/分开
center_vertical:垂直居中
center_horizontal:水平居中
center:水平垂直都居中
right:子类控件位于当前布局的右边
left:子类控件位于当前布局的左边
bottom:子类控件位于当前布局的下边)
Android:layout_gravity = "bottom" ---指本身在父类容器xy的一个位置
Android:layout_weight = "1" ---指本身控件占当前父类容器的一个比例
------RelativeLayout相对布局
RelativeLayout是相对布局控件,他包含的子控件将以控件之间的相对位置或者子类控件相对父类容器的位置的方式排布
--相对父类容器的一个位置
Android:layout_alignParentLeft = "true" 子类控件相对当前父类容器靠左边
Android:layout_alignParetTop = "true" 子类控件相对当前父类容器靠上边
Android:layout_marginLeft = "41dp" 子类控件相对当前父类容器左边的距离
Android:layout_marginTop = "33dp" 子类控件相对当前父类容器上边的距离
Android:layout_centerInParent = "true" 子类控件相对当前父类容器即水平又垂直居中
Android:layout_centerHorizontal = "true" 子类控件相对当前父类容器水平居中
Android:layout_centerVertical = "true" 子类控件相对当前父类容器垂直居中
--相对于子类控件的一个位置
Android:layout_below = "@+id/button1" 该控件位于给定id控件的底部
Android:layout_toRigntOf = "@+id/button1" 该控件位于给定id控件的右边
Android:layout_above = "@+id/button1" 该控件位于给定id控件的上边
Android:layout_toLeftOf = "@+id/button1" 该控件位于给定id控件的左边
Android:layout_alignBaseline = "@+id/button1" 该控件位于给定id控件的内容在一条线上
Android:layout_alignBottom 该控件的底部边缘与给定的ID控件的底部边缘对齐
Android:layout_alignLeft 该控件的左边边缘与给定的ID控件的左边缘对齐
Android:layout_alignRight 该控件的右边缘与给定的Id控件的右边缘对齐
Android:layout_alignTop 该控件的顶部边缘与给定的ID控件的顶部对齐
-----FreameLayout
在这个布局中,所有的子元素都不能被指定放置的位置,他们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。
-----AbsoluteLayout
1.absoluteLayout(绝对布局)又可以叫坐标布局,可以直接指定子元素的绝对位置(xy)
2.由于手机屏幕尺寸差别比较大,使用绝对定位的适应性会比较差,在屏幕的适配上有缺陷
3.子类控件的属性
Android:layout_x = "35dp" 控制当前子类控件的x位置
Android:layout_y = "40dp" 控制当前子类控件的y位置
-----TableLayout
TableLayout表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象。
1.TableLayout的(全局)属性
Android:collapseColumns = “1,2” 隐藏从0开始的索引列。列直接必须用逗号隔开:1,2,4
Android:shrinkColumns = “1,2” 收缩从0开始的索引列。当课收缩的列太宽(内容过多)不会被挤出屏幕,列直接必须用逗号隔开:1,2,4,可以通过“*”代替收缩所有列。注意一列能同时表示收缩和拉伸。
Android:stretchColumns = “1,2” 拉伸从0开始的索引列。以填满剩下的多余空白空间,列直接必须用逗号隔开:1,2,5,可以通过“*”代替收缩所有列。注意一列能同时表示收缩和拉伸。
2.TableLayout的(局部)属性(内部空间所用的属性):
Android:layout_column = "1" 该控件显示在第二列
Android:layout_span = "2" 该控件占据2列