Android 五大布局

线性布局(LinearLayout)
LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列
LinearLayout本身常用到的两个属性
android:orientation="vertical"
----该属性决定他子类控件的排布方式(vertical:垂直;horizontal:水平)
android:gravity="center"
----该属性决定他子类的xy的位置
(常用到的几个属性值:
1.center_vertical:垂直(Y轴)居中
2.center_horizontal:水平(X轴)居中
3.center:水平垂直都居中
4.right:子类控件位于当前布局的右边
5.left:子类控件位于当前布局的左边
6.bottom:子类控件位于当前布局的下面
)
LinearLayout的android:gravity属性可以连用,如:
android:gravity="bottom}center_horizontal"
设定了该布局中的控件位于底部居中。
*布局之间是可以套用的!

相对布局(RelativeLayout)
RelativeLayout是相对布局控件,它包含的子空间将以控件之间的相对位置或者子类控件相对父类容器的位置的方式排列。
子类控件在RelativeLayout中常用到的属性(相对父容器的一个位置)
android:layout_alignParentLeft="true" 子类控件相对当前父类容器靠左边
android:layout_alignParentTop="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_toRightOf="@+id/button1" 该控件位于给定id空间的右边
android:layout_above="@+id/button1" 该控件位于给定id控件的上面
android:layout_toLeftOf="@+id/button1" 该控件位于给定控件的左边
android:layout_alignBaseline="@+id/button1" 该控件的内容与给定id控件的内容在一条线上
android:layout_alignBottom 该控件的底部边缘与给定id控件的底部边缘对齐
android:layout_alignLeft 该控件的左边缘与给定id控件的左边缘对齐
android:layout_alignRight 该控件的右边缘与给定id控件的右边缘对齐
android:layout_alignTop 该控件的顶部边缘与给定id控件的顶部对齐

帧布局FrameLayout
在这个布局中,所有的子元素都不能被制定放置的位置,它们统统放在这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,讲前面的子元素部分全部遮挡。

绝对布局(AbsoluteLayout)
1.AbsoluteLayout(绝对布局)
又可以叫坐标布局,可以直接制定子元素的绝对位置(xy)
2.由于手机屏幕尺寸差别比较大,只用绝对定位的适应性会比较差,在屏幕的适配上有缺陷
AbsoluteLayout子类控件的属性
android:layout_x = "35dip" 控制当前子类控件的x位置
android:layout_y = "40dip" 控制当前子类空间的y位置

表格布局(TableLayout)
TableLayout表格布局模型以行列的形式管理子控件,每一行未一个TableRaw的对象,当然也可以是一个View的对象。
TableLayout的属性(全局属性)
android:collapseColumns = "1,2"
隐藏从0开始的索引列。列直接必须用逗号隔开:1,2,5
android:shrinkColumns = "1,2"
收缩从0开始的索引列。当可收缩的列太宽(内容过多)不会被挤出屏幕,列直接必须用逗号隔开:1,2,5,你可以通过"*"代替收缩所有列。注意一列能同时表示收缩和拉伸。
android:stretchColumns = "1,2"
拉伸从0开始的索引列,以填满剩下的多余空白控件。列必须以逗号隔开:1,2,5,你可以通过"*"代替填满所有列。注意一列能同时表示收缩和拉伸。
TableLayout的局部属性(内部空间所用属性)
android:layout_column="1" 该控件显示在第2列
android:layout_span="2"  该控件占据2列

原文地址:https://www.cnblogs.com/moonlightpoet/p/5405857.html