RelativeLayout是一个ViewGroup,这个是可以以相关连的位置方式显示子视图。每个子视图的位置可以以关联的方式指定,或关联父视图。
RelativeLayout是一个为设计用户窗口的非常强大的工具。因为它可以消除嵌套视图组,并保持你的布局层次扁平,从而提高性能。如果你发现你正在使用嵌套LinearLayout组,你可以能使用RelativeLayout替换它们。
一 布局视图
RelativeLayout使子视图指定相对于父视图的位置或,他们自己之间相对的位置。所有你可以沿着右边栏排列两个元素,或使得一个在另一个下面,或在屏幕的中央,或中心的左边等待。默认情况下所有的子视图都被绘制在布局的左上角,所以你必须使用各种布局的属性变量定义每个视图的位置,他们来自RelativeLayout.LayoutParams。
android:layout_alignParentTop
如果设置为true,使得这个视图的顶沿和父视图的顶沿相同。
android:layout_centerVertical
设置为TRUE,子视图在父视图的中心
android:layout_below
这个视图的顶低于用资源ID指定的视图位置。
android:layout_toRightOf
这个视图的顶部在用资源ID指定的视图位置的右边。
这些只是其中的一部分,更多的细节在RelativeLayout.LayoutParams中。
二 实例
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingLeft="16dp" android:paddingRight="16dp" > <EditText android:id="@+id/name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/reminder" /> <Spinner android:id="@+id/dates" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_below="@id/name" android:layout_alignParentLeft="true" android:layout_toLeftOf="@+id/times" /> <Spinner android:id="@id/times" android:layout_width="96dp" android:layout_height="wrap_content" android:layout_below="@id/name" android:layout_alignParentRight="true" /> <Button android:layout_width="96dp" android:layout_height="wrap_content" android:layout_below="@id/times" android:layout_alignParentRight="true" android:text="@string/done" /> </RelativeLayout>