RelativeLayout相关属性的实践

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="500dp">

    <Button
        android:id="@+id/btn_rl_center"
        style="@style/btn_relative"
        android:layout_centerInParent="true"
        android:text="我在中间"/>

    <Button
        android:id="@+id/btn_rl_center_horizontal"
        style="@style/btn_relative"
        android:layout_centerHorizontal="true"
        android:text="我在水平中间"/>

    <Button
        android:id="@+id/btn_rl_center_vertical"
        style="@style/btn_relative"
        android:layout_centerVertical="true"
        android:text="我在垂直中间"/>

    <Button
        style="@style/btn_relative"
        android:layout_marginTop="100dp"
        android:layout_alignParentLeft="true"
        android:text="我跟上级左边对齐"/>

    <Button
        style="@style/btn_relative"
        android:layout_marginTop="60dp"
        android:layout_alignParentTop="true"
        android:text="我跟上级顶部对齐"/>

    <Button
        style="@style/btn_relative"
        android:layout_marginTop="100dp"
        android:layout_alignParentRight="true"
        android:text="我跟上级右边对齐"/>

    <Button
        android:id="@+id/btn_rl_parent_bottom"
        style="@style/btn_relative"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="我跟上级底部对齐"/>

    <Button
        style="@style/btn_relative"
        android:layout_toLeftOf="@+id/btn_rl_parent_bottom"
        android:layout_alignTop="@+id/btn_rl_parent_bottom"
        android:text="我在底部左边" />

    <Button
        style="@style/btn_relative"
        android:layout_toRightOf="@+id/btn_rl_parent_bottom"
        android:layout_alignBottom="@+id/btn_rl_parent_bottom"
        android:text="我在底部右边"/>

    <Button
        style="@style/btn_relative"
        android:layout_above="@+id/btn_rl_center"
        android:layout_alignLeft="@+id/btn_rl_center"
        android:text="我在中间上面"/>

    <Button
        style="@style/btn_relative"
        android:layout_below="@+id/btn_rl_center"
        android:layout_alignRight="@+id/btn_rl_center"
        android:text="我在中间下面"/>

效果如下:

layout_alignLeft和layout_alignRight的区别

<Button
        style="@style/btn_relative"
        android:layout_below="@+id/btn_rl_center"
        android:layout_alignLeft="@+id/btn_rl_center"
        android:text="我在中间下面"/>

<Button
        style="@style/btn_relative"
        android:layout_below="@+id/btn_rl_center"
        android:layout_alignRight="@+id/btn_rl_center"
        android:text="我在中间下面"/>

对比如下:

  • layout_alignLeft 指:当前视图与指定视图的左侧对齐
  • layout_alignRight 指:当前视图与指定视图的右侧对齐

layout_above

<Button
        android:id="@+id/btn_rl_center"
        style="@style/btn_relative"
        android:layout_centerInParent="true"
        android:text="我在中间"/>
<Button
        style="@style/btn_relative"
        android:layout_above="@+id/btn_rl_center"
        android:text="我在中间上面"/>

layout_above 指:当前视图在指定视图的上方

layout_below

<Button
        android:id="@+id/btn_rl_center"
        style="@style/btn_relative"
        android:layout_centerInParent="true"
        android:text="我在中间"/>
<Button
        style="@style/btn_relative"
        android:layout_below="@+id/btn_rl_center"
        android:text="我在中间下面"/>

layout_below 指:当前视图在指定视图的下方

layout_toLeftOf

<Button
        android:id="@+id/btn_rl_center"
        style="@style/btn_relative"
        android:layout_centerInParent="true"
        android:text="我在中间"/>
<Button
        style="@style/btn_relative"
        android:layout_toLeftOf="@+id/btn_rl_center"
        android:text="我在中间左边"/>

layout_toLeftOf 指:当前视图在指定视图的左边

layout_toRightOf

<Button
        android:id="@+id/btn_rl_center"
        style="@style/btn_relative"
        android:layout_centerInParent="true"
        android:text="我在中间"/>
<Button
        style="@style/btn_relative"
        android:layout_toRightOf="@+id/btn_rl_center"
        android:text="我在中间右边"/>

layout_toRightOf 指:当前视图在指定视图的右边

layout_alignTop

<Button
        android:id="@+id/btn_rl_center"
        style="@style/btn_relative"
        android:layout_centerInParent="true"
        android:text="我在中间"/>
<Button
        style="@style/btn_relative"
        android:layout_below="@+id/btn_rl_center"
        android:text="我在中间下面"/>
<Button
        style="@style/btn_relative"
        android:layout_below="@+id/btn_rl_center"
        android:layout_alignTop="@+id/btn_rl_center"
        android:text="顶部对齐"/>

layout_alignTop 指:当前视图与指定视图的顶部对齐

layout_alignBottom

<Button
        android:id="@+id/btn_rl_center"
        style="@style/btn_relative"
        android:layout_centerInParent="true"
        android:text="我在中间"/>
<Button
        style="@style/btn_relative"
        android:layout_above="@+id/btn_rl_center"
        android:text="我在中间上面"/>
<Button
        style="@style/btn_relative"
        android:layout_above="@+id/btn_rl_center"
        android:layout_alignBottom="@+id/btn_rl_center"
        android:text="底部对齐"/>

layout_alignBottom 指:当前视图与指定视图的底部对齐