相对布局是通过相对定位的方式让控件出现在布局任意位置; 

在相对布局中如果不指定控件摆放的位置,那么控件都会被默认放在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"/>
(图中虚线为基准线)






Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐