序:本文讲RelativeLayout两点:1. 简单例子说明RelativeLayout使用方法 2.强调<RelativeLayout android:gravity="center"/> 用gravity 而不是用layout_gravity来总体设定RelativeLayout容器中子元素整体对齐方式。
-----------------------------------------------------------------------------------------------------------------------
1.简介相对布局RelativeLayout
RelativeLayout可以设置某一视图相对于其他视图的位置,这些位置包括上下左右等。例如:
(1.) android:layout_below 指在某元素的下方
(2.) android:layout_above 指在某元素的上方
(3.) android:layout_toLeftOf 指在某元素的左边
(4.) android:layout_toRightOf 指在某元素的右边
2. .强调<RelativeLayout android:gravity="center"/> 用gravity 而不是用layout_gravity来总体设定RelativeLayout容器中子元素整体对齐方式。以下面程序为例。
(1.) android:gravity = "center" 表示最终五个button 水平方向和垂直方向都居中对齐
(2.) android:gravity = "top" 表示最终五个button 水平方向左对齐(默认),垂直方向顶端对齐
(3.) android:gravity = "right" 表示最终五个button 水平方向右对齐,垂直方向顶端对齐(默认)
(4.) android:gravity = "center_vertical" 表示最终五个button 垂直方向居中对齐,水平方向左对齐(默认)
(5.) android:gravity = "center_horizontal" 表示最终五个button 水平方向居中对齐,垂直方向顶端对齐(默认)
注意:a. 用gravity 而不用layout_gravity,是因为对于RelativeLayout这个容器来讲,这五个button属于RelativeLayout的子元素。就相当于button要设置button内的字居中,用gravity="center" 不用layout_gravity="center" .因为button中的字在button这个容器内。
b. gravity和layout_gravity的详细区别前面的文章 android布局介绍
c. 第一个元素必须是最左上角的元素,也就是之后所相对出来的元素的位置水平方向不能在第一个元素左边,垂直方向上不能在第一个创建的元素上边。eg:本程序中不能第一个创建button1 ,而只能第一个创建左上角的button,然后以此button为基础创建button1,再以button1为相对参照物,创建button2,button3,button4. 注意:笔者曾第一创建中间的button1,然后以button1为参照,分别创造button2,button4,button3,button ,结果只能显示button1和其右下角的button2. 说明一切以第一个创建的button为参照物,后面创建的button水平方向不能在参照物左边,垂直方向不能在参照物上边。
-----------------------------------------------------------------------------------------------------------------
程序运行结果图:
页面代码:/res/layout/activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="center" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="button" android:textSize="12dp" > </Button> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/button" android:layout_toRightOf="@id/button" android:text="button1" android:textSize="12dp"> </Button> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/button1" android:layout_toRightOf="@id/button1" android:text="button2" android:textSize="12dp"> </Button> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/button1" android:layout_toRightOf="@id/button1" android:text="button3" android:textSize="12dp"> </Button> <Button android:id="@+id/button4" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/button1" android:layout_toLeftOf="@id/button1" android:text="button4" android:textSize="12dp" > </Button> </RelativeLayout>