RelativeLayout下级视图的位置是相对位置,得有具体的参照物才能确定最终位置,下级视图默认显示在RelativeLayout内部的左上角。
用于确定视图位置的参照物分两种,一种是与该视图自身平级的视图,另一种是该视图的上一级视图
XML中的相对位置属性 | 相对位置说明 | 取值说明 |
---|---|---|
layout_toLeftOf | 当前视图在指定视图的左边 | 将该控件的右边缘和给定id的控件的左边缘对齐 |
layout_toRightOf | 当前视图在指定视图的右边 | 将该控件的左边缘和给定id的控件的右边缘对齐 |
layout_above | 当前视图在指定视图的上方 | 将该控件的底部置于给定id的控件之上 |
layout_below | 当前视图在指定视图的下方 | 将该控件的顶部置于给定id的控件之下 |
layout_alignLeft | 当前视图在指定视图的左侧对齐 | 将该控件的左边缘和给定id的控件的左边缘对齐 |
layout_alignRight | 当前视图在指定视图的右侧对齐 | 将该控件的右边缘和给定id的控件的右边缘对齐 |
layout_alignTop | 当前视图在指定视图的顶部对齐 | 将该控件的顶部边缘和给定id的控件的顶部边缘对齐 |
layout_alignBottom | 当前视图在指定视图的底部对齐 | 将该控件的底部边缘与给定id的控件的底部边缘对齐 |
layout_centerInParent | 当前视图在上级视图的中间 | 如果该值为true,该控件将被置于父控件水平方向的中央 |
layout_centerHorizontal | 当前视图在上级视图的水平方向居中 | 如果该值为true,该控件将被置于水平方向的中央 |
layout_centerVertical | 当前视图在上级视图的垂直方向居中 | 如果该值为true,该控件将被置于垂直方向的中央 |
layout_alignParentLeft | 当前视图在上级视图的左侧对齐 | 如果该值为true,则将该控件的左边缘和父控件的左边缘对齐 |
layout_alignParentRight | 当前视图在上级视图的右侧对齐 | 如果该值为true,则将该控件的右边缘和父控件的右边缘对齐 |
layout_alignParentTop | 当前视图在上级视图的顶部对齐 | 如果该值为true,则将该控件的顶部边缘和父控件的顶部边缘对齐 |
layout_alignParentBottom | 当前视图在上级视图的底部对齐 | 如果该值为true,则将该控件的底部边缘和父控件的底部边缘对齐 |
代码块
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/center"
android:layout_width="100dp"
android:layout_height="40dp"
android:background="#00FF00"
android:layout_centerInParent="true"
android:text="我在中间"/>
<Button
android:id="@+id/center_horizontal"
android:layout_width="100dp"
android:layout_height="40dp"
android:background="#00FF00"
android:layout_centerHorizontal="true"
android:text="我在水平中间"/>
<Button
android:id="@+id/parent_left"
android:layout_width="100dp"
android:layout_height="40dp"
android:background="#00FF00"
android:layout_alignParentLeft="true"
android:text="我跟上级左边对齐"/>
<Button
android:id="@+id/center_bottom"
android:layout_width="100dp"
android:layout_height="40dp"
android:background="#00FF00"
android:layout_below="@+id/center"
android:layout_alignLeft="@+id/center"
android:text="我在中间下面"/>
</RelativeLayout>
效果图