相对布局要比前面讲的线性布局和表格布局要灵活一些,所以平常用得也是比较多的。相对布局控件的位置是与其周围控件的位置相关的,从名字可以看出来,这些位置都是相对的,确定出了其中一个控件的位置就可以确定另一个控件的位置了。
本次实验就是显示如下的activity:
其中只有2个button,1个textview,1个edittext。
在相对布局中,一般用到的控件属性解释如下:
在相对布局中有如下属性,解释如下:
android:layout_above 为将该控件的底部放在指定id控件的上方
android:layout_below 同理类似,将该控件的顶部放在指定id控件的下方
android:layout_toLeftOf 将该控件的右端紧挨着放在指定id控件的左端。
android:layout_toRightOf 将该控件的左端紧挨着放在指定id控件的右端
android:layout_alignParentRight 为true时将该控件右端与父控件右端对齐
android:layout_alignParentLeft 为true时将该控件左端与父控件左端对齐
android:layout_alignParentTop 为true时将该控件顶端与父控件顶端对齐
android:layout_alignParentBottom 为true时将该控件底端与父控件底端对齐
android:layout_alignBottom 将该控件底部与指定id控件底部控件对齐
android:layout_alignLeft 将该控件左边与指定id控件左边对齐
android:layout_alignRight 将该控件右边与指定id控件右边对齐
android:layout_alignTop 将该控件顶端与指定id控件顶端对齐
实现上面activity比较简单,其xml代码如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10px" > <TextView android:id="@+id/input" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/input_dis" tools:context=".MainActivity" /> <EditText android:id="@+id/edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/input" android:background="@android:drawable/editbox_background" /> <Button android:id="@+id/ok" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_below="@id/edit" android:layout_alignParentRight="true" android:layout_marginLeft="10px" android:text="@string/ok" /> <Button android:id="@+id/cancel" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_below="@id/edit" android:layout_toLeftOf="@id/ok" android:text="@string/cancel" /> </RelativeLayout>
总结:activity的相对布局比较灵活,一些常见的属性也比较多,用得多自然就会了。