相对布局由于属性比较多,所以用起来有些费力,但灵活性较其他布局方法好,所以掌握好相对布局将会非常有用。先看等一个例子:
1
<?
xml version
=
"
1.0
"
encoding
=
"
utf-8
"
?>
2
<
RelativeLayout xmlns:android
=
"
http://schemas.android.com/apk/res/android
"
3
android:layout_width
=
"
fill_parent
"
4
android:layout_height
=
"
fill_parent
"
>
5
<
TextView
6
android:id
=
"
@+id/label
"
7
android:layout_width
=
"
fill_parent
"
8
android:layout_height
=
"
wrap_content
"
9
android:text
=
"
Type here:
"
/>
10
<
EditText
11
android:id
=
"
@+id/entry
"
12
android:layout_width
=
"
fill_parent
"
13
android:layout_height
=
"
wrap_content
"
14
android:background
=
"
@android:drawable/editbox_background
"
15
android:layout_below
=
"
@id/label
"
/>
16
<
Button
17
android:id
=
"
@+id/ok
"
18
android:layout_width
=
"
wrap_content
"
19
android:layout_height
=
"
wrap_content
"
20
android:layout_below
=
"
@id/entry
"
21
android:layout_alignParentRight
=
"
true
"
22
android:layout_marginLeft
=
"
10dip
"
23
android:text
=
"
OK
"
/>
24
<
Button
25
android:layout_width
=
"
wrap_content
"
26
android:layout_height
=
"
wrap_content
"
27
android:layout_toLeftOf
=
"
@id/ok
"
28
android:layout_alignTop
=
"
@id/ok
"
29
android:text
=
"
Cancel
"
/>
30
</
RelativeLayout
>
这是很常见的布局内容,讲解如下:
1
android:layout_below
=
"
@id/label
"
/>
将当前控件放置于id为label 的控件下方。
1
android:layout_alignParentRight
=
"
true
"
使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。
1
android:layout_marginLeft
=
"
10dip
"
使当前控件左边空出相应的空间。
1
android:layout_toLeftOf
=
"
@id/ok
"
使当前控件置于id为ok的控件的左边。
1
android:layout_alignTop
=
"
@id/ok
"
使当前控件与id控件的上端对齐。
至此,我们已经发现,其属性之繁多。下面简单归纳一下:
第一类:属性值为true或false
*android:layout_centerHrizontal
*android:layout_centerVertical
*android:layout_centerInparent
*android:layout_alignParentBottom
*android:layout_alignParentLeft
*android:layout_alignParentRight
*android:layout_alignParentTop
*android:layout_alignWithParentIfMissing
第二类:属性值必须为id的引用名“@id/id-name”
*android:layout_below
*android:layout_above
*android:layout_toLeftOf
*android:layout_toRightOf
*android:layout_alignTop
第三类:属性值为具体的像素值,如30dip,40px
*android:layout_marginBottom
*android:layout_marginLeft
*android:layout_marginRight
*android:layout_marginTop
再看第二个例子:
1
<?
xml version
=
"
1.0
"
encoding
=
"
utf-8
"
?>
2
<
RelativeLayout
3
xmlns:android
=
"
http://schemas.android.com/apk/res/android
"
4
android:layout_width
=
"
fill_parent
"
5
android:layout_height
=
"
fill_parent
"
>
6
7
<
AnalogClock
8
android:id
=
"
@+id/aclock
"
9
android:layout_width
=
"
wrap_content
"
10
android:layout_height
=
"
wrap_content
"
11
android:layout_centerInParent
=
"
true
"
/>
12
<
DigitalClock
13
android:id
=
"
@+id/dclock
"
14
android:layout_width
=
"
wrap_content
"
15
android:layout_height
=
"
wrap_content
"
16
android:layout_below
=
"
@id/aclock
"
17
android:layout_alignLeft
=
"
@id/aclock
"
18
android:layout_marginLeft
=
"
40px
"
/>
19
<
TextView
20
android:layout_width
=
"
wrap_content
"
21
android:layout_height
=
"
wrap_content
"
22
android:text
=
"
当前时间:
"
23
android:layout_toLeftOf
=
"
@id/dclock
"
24
android:layout_alignTop
=
"
@id/aclock
"
/>
25
</
RelativeLayout
>
两个例子的效果图如下:第一个例子
第二个例子