Chrisの梳羽之礁

A look of quick intelligence and soft refinement
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

RelativeLayout使用实例(一)

Posted on 2011-02-14 09:14  Chrisfang6  阅读(4295)  评论(0编辑  收藏  举报

利用相对布局生成页面。

要求:

1. bottom按钮置底

2. ScrollView(蓝色)填充满剩余的空间

xml内容如下:

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 android:isScrollContainer="true"
7 android:background="@drawable/yellow"
8 android:padding="5px">
9
10 <TextView android:id="@+id/label"
11 android:layout_width="wrap_content"
12 android:layout_height="wrap_content"
13 android:text="Type here:"
14 android:layout_alignBottom="@id/entry"
15 />
16
17 <EditText android:id="@+id/entry"
18 android:layout_width="fill_parent"
19 android:layout_height="wrap_content"
20 android:background="@android:drawable/editbox_background"
21 android:layout_toRightOf="@id/label"
22 />
23
24 <Button android:id="@+id/ok"
25 android:layout_width="wrap_content"
26 android:layout_height="wrap_content"
27 android:layout_marginLeft="10px"
28 android:text="OK"
29 android:layout_below="@id/entry"
30 android:layout_alignParentRight="true"
31 />
32
33 <Button android:layout_width="wrap_content"
34 android:layout_height="wrap_content"
35 android:layout_toLeftOf="@id/ok"
36 android:layout_alignTop="@id/ok"
37 android:text="Cancel"/>
38
39 <LinearLayout android:id="@+id/linear"
40 android:layout_width="fill_parent"
41 android:layout_height="wrap_content"
42 android:orientation="vertical"
43 android:layout_alignParentBottom="true"
44 >
45 <Button android:id="@+id/bottomBtn"
46 android:layout_width="fill_parent"
47 android:layout_height="wrap_content"
48 android:text="bottom"
49 />
50 </LinearLayout>
51
52 <ScrollView android:id="@+id/scroll"
53 android:layout_width="fill_parent"
54 android:layout_height="fill_parent"
55 android:background="@drawable/blue"
56 android:fillViewport="true"
57 android:padding="5px"
58 android:layout_above="@id/linear"
59 android:layout_below="@id/ok"
60 >
61 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
62 android:layout_width="fill_parent"
63 android:layout_height="wrap_content"
64 android:orientation="vertical"
65 >
66 <TextView android:id="@+id/labelinScroll"
67 android:layout_width="fill_parent"
68 android:layout_height="wrap_content"
69 android:text="@string/scroll_text"/>
70 <EditText android:id="@+id/edinscroll"
71 android:layout_width="fill_parent"
72 android:layout_height="wrap_content"
73 android:background="@android:drawable/editbox_background"/>
74 </LinearLayout>
75 </ScrollView>
76
77  </RelativeLayout>

效果如图:

关键是58、59行。

将除滚动域外其他的控件先放好位置。再将ScrollView设定为介于两个控件之间并fill_parent。



另外,将TextView和EditView置为底部对齐,如14行,也可在代码中调整:

1 View edit = findViewById(R.id.entry);
2 View text = findViewById(R.id.label);
3 RelativeLayout.LayoutParams layout = (RelativeLayout.LayoutParams)text.getLayoutParams();
4 layout.addRule(RelativeLayout.ALIGN_BOTTOM, edit.getId());