RelativeLayout布局实验(Android Studio)
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="false"
android:layout_alignParentTop="false"
android:layout_alignParentRight="false"
android:layout_alignParentBottom="false"
tools:context=".MainActivity">
<Button
android:id="@+id/b1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="parentstart" />
<Button
android:id="@+id/b2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="166dp"
android:layout_toRightOf="@id/b1"
android:text="parentright" />
<Button
android:id="@+id/b3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/b1"
android:layout_marginTop="622dp"
android:text="parentbottom" />
<Button
android:id="@+id/b4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="160dp"
android:layout_marginTop="670dp"
android:layout_toRightOf="@id/b3"
android:text="parentleft" />
<Button
android:id="@+id/cen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@color/colorAccent"
android:text="center" />
<Button
android:id="@+id/above"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/cen"
android:layout_marginBottom="20dp"
android:layout_marginLeft="160dp"
android:text="above" />
<Button
android:id="@+id/left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/cen"
android:layout_marginBottom="0dp"
android:layout_marginLeft="50dp"
android:text="left" />
<Button
android:id="@+id/right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/cen"
android:layout_marginLeft="270dp"
android:layout_marginBottom="0dp"
android:text="right" />
<Button
android:id="@+id/below"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/cen"
android:layout_marginLeft="160dp"
android:layout_marginTop="20dp"
android:text="below" />
</RelativeLayout>
RelativeLayout(相对布局)中,控件可以通过两类属性表示相对位置,一类表示与父容器的相对位置,另一类表示与其他控件之间的相对位置。不管是相对于父容器位置还是其他控件位置(容器),在设置好大致方向之后,一般都是需要再设置具体方向的距离而且一般是两个(上下一个、左右一个)。
一、大致方位:相对于父容器的属性,属性值选择 true 或者 false。
android:layout_centerInParent(在父布局的水平、垂直方向都居中)
android:layout_centerVertical(在父布局的垂直方向居中)
android:layout_centerHorizontal(在父布局的水平方向居中)
android:layout_alignParentTop(是否与父控件的顶端对齐)
android:layout_alignParentBottom(是否与父控件的底端对齐)
android:layout_alignParentLeft(是否与父控件的左侧对齐)
android:layout_alignParentRight(是否与父控件的右侧对齐)
二、大致方位:相对于其他控件的属性,属性值为控件的id。
android:layout_above(位于某控件上方)
android:layout_below(位于某控件下方)
android:layout_toLeftOf(位于某控件左方)
android:layout_toRightOf(位于某控件右方)
android:layout_alignTop(当前控件的顶部是否与某控件顶部对齐)
android:layout_alignBottom(当前控件的底部是否与某控件底部对齐)
android:layout_alignLeft(当前控件的左界面是否与某控件左界面对齐)
android:layout_alignRight(当前控件的右界面是否与某控件右界面对齐)
android:layout_alignBaseline(与某控件的文本内容在一条直线上)
三、具体方向的距离:属性值单位选择为dp。
android:layout_margin(和父布局或者父控件或者其他控件四周的距离)
android:layout_marginTop(当前控件的顶部和父布局或者父控件或者其他控件上端的距离)
android:layout_marginBottom(当前控件的底部和父布局或者父控件或者其他控件下端的距离)
android:layout_marginLeft(当前控件的左界面和父布局或者父控件或者其他控件左端的距离)
android:layout_marginRight(当前控件的右界面和父布局或者父控件或者其他控件右端的距离)