一、绝对布局(AbsoluteLayout)
1、只根据控件相对Activity的原点0,0坐标进行位置的设置,每个控件的位置对别的控件的位置没有任何影响
2、在Android2.3.3以后基本被废弃
二、帧布局(也叫框架布局,FrameLayout)
1、目的是为了叠加效果
2、一般进行居中等简单设置,不对位置进行过于精确的定位
小知识:外边距(margin)和内边距(padding)
三、表格布局(TableLayout)
1、TableLayout可以设置整个内容垂直居中,使用属性android:gravity="center_vertical"
2、单个控件占一行,最好也要包含在TableRow标签中,
不然为该控件设置的宽度是无效的,因为没包含在TableRow标签中它默认占满整行
3、表格布局时,如果第二行是三列,第一行想只有一列,必须做合并
合并是在控件中做的,合并属性是android:layout_span
**实际开发时要注意:
1、因为实际手机屏幕大小有很多种,我们设计界面时,以应用能运行的最小屏幕作为设计目标,各种大小要事先计算
2、希望大屏幕里效果也要好,诀窍是:
2.1 整体布局在水平和垂直上都能居中
2.2 控件设定物理大小
四、线性布局(LinearLayout)
1、横向或纵向
2、嵌套实现一些效果
五、相对布局(RelativeLayout)
1、灵活,能实现几乎所有嵌套布局能实现的效果,但是需要清晰的设计思路
2、控件的属性非常多
5.1、控件的相对位置
android:layout_above 将该控件的底部至于给定ID的控件之上
android:layout_below 将该控件的顶部至于给定ID的控件之下
android:layout_toLeftOf 将该控件位于给定ID的控件的左边
android:layout_toRightOf 将该控件位于给定ID的控件的右边
5.2、控件的Margin属性
android:layout_marginBottom 该控件离某元素底边缘的距离
android:layout_marginLeft 该控件离某元素左边缘的距离
android:layout_marginRight 该控件离某元素右边缘的距离
android:layout_marginTop 该控件离某元素上边缘的距离
5.3、控件与控件之间的对齐方式
android:layout_alignBottom 将该控件的底部边缘与给定ID控件的底部边缘对齐
android:layout_alignLeft 将该控件的左边缘与给定ID控件的左边缘对齐
android:layout_alignRight 将该控件的右边缘与给定ID控件的右边缘对齐
android:layout_alignTop 将给定控件的顶部边缘与给定ID控件的顶部对齐
5.4、控件与父控件的对齐方式
android:layout_alignParentBottom 值为true,则将该控件的底部和父控件的底部对齐
android:layout_alignParentLeft 值为true,则将该控件的左边与父控件的左边对齐
android:layout_alignParentRight 值为true,则将该控件的右边与父控件的右边对齐
android:layout_alignParentTop 值为true,则将控件的顶部与父控件的顶部对齐
5.5、控件的方向
android:layout_centerHorizontal 值为true,控件将被至于水平方向的中央
android:layout_centerVertical 值为true,控件将被至于垂直方向的中央
android:layout_centerInParent 值为true,控件将被至于父控件水平方向和垂直方向的中央
**注意:
1、不能产生循环依赖
比如,不能将RelativeLayout的高设置成为WRAP_CONTENT的时候将子元素的高设置成为 ALIGN_PARENT_BOTTOM。
2、为了性能,采用相对布局代替嵌套线性布局