RelativeLayout顾名思义,这是一个相对布局。也就是说这个布局里面的元素是按照相对位置来布局的,允许其子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一。比如有两个布局里面有两个TextView,我们可以定义第二个TextView在第一个TextView的右边或者下边。第二过TextView出现的位置,将会取决于第一个TextView的位置。
这种布局的灵活性大,当然属性也多,操作难度也大。不同的属性之间很有可能会产生冲突。
下面我们用相对布局再做一次上面的例子,首先放置一个图片,其它两个文本分别相对上一个元素定位:
<?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="wrap_content"
android:padding="10dip">
<TextView android:id="@+id/lable"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="请输入用户名:"/>
<EditText android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/lable"/>
<Button android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/text"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:text="取消"/>
<Button android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/cancel"
android:layout_alignTop="@id/cancel"
android:text="确定"/>
</RelativeLayout>
下面是分别在手机和平板上面的显示效果。