RelativeLayout
相对布局,控件之间的位置是相对位置,可以相对父控件或者相对子控件之间进行布局
(1)属性值为true或者false
一般相对父布局
android :layout_centerHorizontal //相对父布局水平居中
android :layout_centerVertical //相对父布局垂直居中
android :layout_centerInParent //相对父布局居中
android:layout_alignParentRight //父布局右边缘
android:layout_alignParentLeft //父布局左边缘
android:layout_alignParentTop //父布局上边缘
android:layout_alignParentBottom //父布局下边缘
(2)引用为id的name “@+id/name”
相对同级元素
android:layout_below //某元素下方
android:layout_above //某元素上方
android:layout_toRightOf //某元素右边
android:layout_toLeftOf //某元素左边
android:layout_alignRight //右边缘对齐
android:layout_alignLeft //左边缘对齐
android:layout_alignTop //上边缘对齐
android:layout_alignBottom //下边缘对齐
align 使成一线,排列成一条线
(3)属性为具体的值 =“10dp”
android:layout_marginTop //离某元素上边缘距离
android:layout_marginBottom //离某元素下边缘距离
android:layout_marginLeft //离某元素左边缘距离
android:layout_marginRight //离某元素右边缘距离
margin n边缘,利润,盈亏 vt 留边,成为···的边
实现如下一个布局,可以用两种方式
`<?xml version="1.0" encoding="utf-8"?>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/text1"
android:layout_alignLeft="@id/text1"
android:layout_marginLeft="40dp"
android:text="text2" />
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/text1"
android:layout_alignRight="@id/text1"
android:layout_marginRight="40dp"
android:text="text3" />
<TextView
android:id="@+id/text4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/text1"
android:layout_alignLeft="@+id/text1"
android:layout_marginLeft="40dp"
android:text="text4" />
<TextView
android:id="@+id/text5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/text1"
android:layout_alignRight="@+id/text1"
android:layout_marginRight="40dp"
android:text="text5" />
对于右上角的textView2,首先置于要参照控件顶部
android:layout_above="@id/text1"
接下来让左边缘与text1的左边缘对其
android:layout_alignLeft="@id/text1"
最后设置text3离text1左边缘的偏移距离
android:layout_marginLeft=“40dp”
还可以这样实现
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".AlignController">
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="text1" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/text1"
android:layout_toLeftOf="@+id/text1"
android:text="text2" />
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/text1"
android:layout_toRightOf="@+id/text1"
android:text="text3" />
<TextView
android:id="@+id/text4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/text1"
android:layout_toLeftOf="@+id/text1"
android:text="text4" />
<TextView
android:id="@+id/text5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/text1"
android:layout_toRightOf="@+id/text1"
android:text="text5" />
</RelativeLayout>
相对父布局布局,这样一个页面实现如下
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:text="text1" />
<Button
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="text2" />
<Button
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="text3" />
<Button
android:id="@+id/text4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="text4" />
<Button
android:id="@+id/text5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="text5" />
</RelativeLayout>
摘选自《Android App开发从入门到精通》《第一行代码》