1.LinearLayout 线性布局
2.RelativeLayout 相对布局
特点:
当放置多个子控件在此布局中时,如果不额外设置任何的属性,所有控件的位置默认位于屏幕左上方,当想要设置多个控件的位置时,相对布局遵循的原则为:该控件的位置位于哪里始终是相对于另一个人的,如:控件S的位置时位于控件A的右下方推荐使用相对布局的原因:减少布局文件中布局对象的嵌套,嵌套的层级越少,布局文件加载的越快利于用户体验
特点2:鉴于相对布局中的控件大多数情况下位置的确定都是依赖于另一个子控件,因此有一句话叫做见一发而动全身,即一个控件的位置动了,其他依赖此控件的控件都会随之而动,因此,相对布局在代码写完后调整位置的时候要小心些。
相对布局的特有属性:
方向1,相对于parent
居中系列:
android:layout_centerInParent="" 位于父控件的中心点,即水平,垂直都居中
android:layout_centerHorizontal="" 水平居中
android:layout_centerVertical="" 垂直居中
这三个属性的值只有2种选择,true,false
贴边系列
android:layout_alignParentLeft="" 紧贴父控件区域的左边缘,即最靠左
android:layout_alignParentTop="" 紧贴父控件区域的上边缘,即最靠上
android:layout_alignParentRight=""紧贴父控件区域的右边缘,即最靠右
android:layout_alignParentBottom=""紧贴父控件区域的下边缘,即最靠下
属性值的选择:true或false
注意:当在相对布局中想要设置一下某控件距离屏幕的右边缘或下边缘有一定的间距,必须先确保
android:layout_alignParentRight=""或android:layout_alignParentTop=""
属性存在,否则无效果
相对布局位置属性设置的方向2:
控件A的具体位置是相对于其他子控件的时候
贴边系列:
android:layout_alignLeft="" 左边缘平齐
android:layout_alignRight="" 右边缘平齐
android:layout_alignTop="" 上边缘平齐
android:layout_alignBottom="" 下边缘平齐
android:layout_alignBaseline="" 基准线平齐
属性值的设置是设置对应控件的id值
方向系列:
android:layout_toLeftOf="" 位于某控件的左边
android:layout_toRightOf=""位于某控件的右边
android:layout_above=""位于某控件的上边
android:layout_below=""位于某控件的下边
属性值在填写的时候限制了属性的类型必须是int型,准确说的话,应该是一个id值(唯一标识符)
控件的id值用android:id这条属性来设置
@+id/这些都是固定的
/的后面值得就是自定义的id的名字
只需保证同一个xml文件中不同的控件不能有同名的id值
对于 类似于android:layout_below="@+id/textView1"
这样的引用id值,@+id/中间的加号是可省略的。
+号何时省略:取决于要引用的id值所对应的控件的书写位置是在当前控件之前,还是
在当前控件之后
如果是在之前,可省
如果是在之后,不可省
特点:同样能使用layout_gravity属性也叫做空白布局,将这个布局看做类似于ps中图层的概念,如果在该布局中同时放置多个控件,那么这多个控件之间的关系不再是线性布局中的一条直线,而是z轴上覆盖关系,每个控件默认位置左上方
4.GridLayout(4.0之前,TableLayout) 网格布局
特点:默认的将所有的子控件都放到一个网格的结构中并且指定位置的时候,只需指定该控件它位于第几行第几列即可注意:行和列,均是从0开始可能会遇到的问题:View requireds level 14.。。要注意,GridLayout是4.0的版本之后才出现的控件,也就说匹配了这个控件的应用尽量让其运行在4.0版本以上的手机上,所以,minSdk尽量设置成14以上
android:layout_column 用于指定当前控件所在的列索引
android:layout_row 用于指定当前控件所在的行索引
android:layout_rowSpan 用于通知系统当前的这个控件想要在高上占据2行的高度
必须匹配上android:layout_gravity="fill"的属性,让这个控件真正的实现拉伸的效果
特点:每个子控件放置的位置都是绝对的,接给每一个控件的放置的位置都匹配了一个坐标值(x,y),
五大布局常用率比较(从大到小排列)
RelativeLayout,LinearLayout,FrameLayout,GridLayout,AbsoluteLayout