相对布局管理器用RelativeLayout表示。相对布局管理器可以通过指定控件的相对位置属性,将其放置到活动的任何位置。控件的相对位置属性包括两类:一类是相对活动的位置属性,另一类是相对其它控件的位置属性。
1 相对活动的属性
相对活动的属性包括位置属性和对齐属性。相对活动的属性值均为true或者false。
1.1 相对活动的位置属性
相对活动的位置属性包括了layout_centerHorizontal(水平居中)、layout_centerVertical(垂直居中)和layout_centerInParent(中央位置)。
1.2 相对活动的对齐属性
相对活动的对齐属性包括了layout_alignParentBottom(控件底端与活动对齐)、layout_alignParentTop(控件顶端与活动对齐)、layout_alignParentLeft(控件左侧与活动对齐)和layout_alignParentRight(控件右侧与活动对齐)。
1.3 使用相对活动的属性
将相对活动的位置属性和对齐属性结合在一起使用,代码如下。
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1"
android:layout_alignParentRight="true"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2"
android:layout_centerInParent="true"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button3"
android:layout_alignParentBottom="true"/>
其中,Button1的右侧与活动对齐,位置在活动的最上端;Button2位于活动的正中间;Button3的左侧与活动对齐,位置在活动的最底端。如图1所示。
图1 设置了相对活动的属性的按键
2 相对控件的属性
相对空间的位置属性也是包括位置属性和对齐属性。这两种属性的值是指定相对控件的ID。
2.1 相对控件的位置属性
相对控件的位置属性包括layout_toLeftOf(在指定控件的左侧)、layout_toRightOf(在指定控件的右侧)、layout_above(在指定控件的上方)和layout_below(在指定控件的下方)。
2.2 相对控件的对齐属性
相对控件的对齐属性包括layout_alignTop(与指定控件的上边界对齐)、layout_alignBottom(与指定控件的下边界对齐)、layout_alignLeft(与指定控件的左侧对齐)和layout_alignRight(与指定控件的右侧对齐)。
2.3 使用相对控件的属性
将相对控件的位置属性和对齐属性结合在一起使用,代码如下。
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button3"
android:layout_centerInParent="true"
android:id="@+id/Button3"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1"
android:layout_above="@id/Button3"
android:layout_toLeftOf="@id/Button3"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2"
android:layout_below="@id/Button3"
android:layout_toLeftOf="@id/Button3"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button4"
android:layout_above="@id/Button3"
android:layout_toRightOf="@id/Button3"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button5"
android:layout_below="@id/Button3"
android:layout_toRightOf="@id/Button3"/>
因为其余4
个按键都是相对
Button3
按键来进行设置的,所以首先设置
Button3
的位置,其位置为活动的正中间。
Button1
位于
Button3
的左上角;
Button2
位于
Button3
的左下角;
Button4
位于
Button3
的右上角;
Button5
位于
Button3
的右下角。其效果如图
2
所示。
图2 设置了相对控件的属性的按键