上次讲了LinearLayout(线性布局),今天来讲一下RalativeLayout(相对布局)
1、什么是RalativeLayout:
相对布局,其使用频率仅稍低于LinearLayout,它的排列方式强调的是子控件之间的相对位置或者子类控件相对父类容器的位置。也就是说它比线性布局更加散漫。
举个栗子来对比一下:有两个控件A和B,现在要把B放在A的左边,那么在线性布局(layout_height属性值为“wrap_content”)中,A和B一定是对得非常整齐,而在相对布局中,二者的底却不一定在同一水平线上,这就是相对布局的特点。
2、RalativeLayout中子类控件的常用属性:
子类控件的常用属性可以分为两类,一类是子类控件相对父类布局而言,另一类是子类控件相对另外的子类控件而言
(1)子类控件相对父类容器:
android:layout_alignParentLeft="true" //子类控件相对父类容器靠左边
android:layout_alignParentTop="true" //子类控件相对父类容器靠上边
//当然还有layout_alignParentBottom和layout_alignParentRight
android:layout_marginLeft="41dp" //子类控件距离父类容器左边的距离
android:layout_marginTop="33dp" //子类控件距离父类容器上边的距离
//同样有layout_marginBottom和layout_marginRight
android:layout_centerInParent="true" //子类控件相对当前父类容器既水平居中又垂直居中
android:layout_centerHorizontal="true" //子类控件相对当前父类容器水平居中
android:layout_centerVertical="true" //子类控件相对当前父类容器垂直居中
(2)子类控件相对子类控件:
假设该布局中还有一个子类控件,其id为button1
android:layout_below="@+id/button1" //该控件位于给定id控件的底部
android:layout_toRightOf="@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/button1" //该控件的底部边缘与给定id控件的底部边缘对齐
android:layout_alignLeft="@id/button1" //该控件的左边缘与给定id控件的左边缘对齐
android:layout_alignRight="@id/button1" //该控件的右边缘与给定id控件的右边缘对齐
android:layout_alignTop="@id/button1" //该控件的顶部边缘与给定id控件的顶部边缘对齐
3、总结:
以上就是RalativeLayout中经常用到的属性,它的属性比较多,硬记是记不住的,在实际编程中多运用几次也就自然能记住了。从以上这些属性也可以看出,在RalativeLayout中控件的摆放要比LinearLayout中的控件灵活许多。它可以用来替换嵌套比较多的LinearLayout。