相对布局是通过相对定位的方式让控件出现在布局任意位置;
在相对布局中如果不指定控件摆放的位置,那么控件都会被默认放在RelativeLayout的左上角。因此要先指定第一个控件的位置,其他控件为该位置的相对位置;
RelativeLayout属性:
(使用相对布局属性需要先指定控件的id,其他控件根据该控件的id,来确定相对于该控件的相对位置)
示例:
xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="第一个"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/textview" android:text="第二个"/> RelativeLayout>
结果:
(第一个控件默认在布局左上角,如果指定放在第一个控件的左边或者上面,会看不到第二个控件)
与兄弟控件的边缘对齐:
android:layout_below 将该控件的上边缘对齐指定控件的下边缘
android:layout_above 将该控件的下边缘对齐指定控件的上边缘
android:layout_toLeftOf 将该控件的右边缘对齐指定控件的左边缘
android:layout_toRightOf 将该控件的左边缘对齐指定空间的右边缘
--------
android:layout_alignRight 将该控件的右边缘对齐指定控件的右边缘
如:
android:layout_alignLeft 将该控件的左边缘对齐指定控件的左边缘
android:layout_alignTop 将该控件的上边缘对齐指定控件的上边缘
android:layout_alignBottom 将该控的下边缘对齐指定控件的下边缘
------------------------
与父控件的边缘对齐:
android:layout_alignParentLeft 左边缘与父控件的左边缘对齐
android:layout_alignParentRight 右边缘与父控件的右边缘对齐
android:layout_alignParentTop 上边缘与父控件的上边缘对齐
android:layout_alignParentBottom 下边缘与父控件的下边缘对齐
(属性值为true,false)
(可以同时使用两个属性,如android:layout_alignParentRight android:layout_alignParentBottom 表示将该控件放到父控件的右下角)
---------------------
对齐置父控件的中间:
android:layout_centerInParent 放置到父控件的正中间
android:layout_centerHorizontal
android:layout_centerVertical 放置到父控件的垂直中间
(属性值为true,false)
---------------------
android:layout_alignStart 对齐置兄弟控件的起始位置
android:layout_alignEnd 对齐置兄弟控件的末尾位置
android:layout_alignParentStart 对齐置父控件的起始位置
android:layout_alignParentEnd 对齐置父控件的末尾位置
---------------------
基准线
android:layout_alignBaseline 对齐基准线
(值为id)
示例:
<TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="50sp" android:text="ABCDE"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/textview" android:layout_alignBaseline="@id/textview" android:text="cdefghil"/>
(图中虚线为基准线)