布局篇——RelativeLayout
一,功能:RelativeLayout是相对布局控件,它包含的子控件将以控件之间的相对位置或者子控件相对父类容器的位置的方式排列
二:子类控件在RelativeLayout中常用到的属性(相对父容器的一个位置)
android:layout_marginLeft="40dp" 子类控件距父类容器左边的距离
android:layout_marginTop="32dp" 子类控件距父类容器上边的距离
android:layout_alignParentLeft="true/false" 子类控件是否在相对当前父类容器的左边
android:layout_alignParentTop="true/false" 子类控件是否在相对当前父类容器的上边
android:layout_centerInParent="true/false" 子类控件相对父类容器是否即水平居中又垂直居中
android:layout_centerHorizontal="true/false" 子类控件相对父类容器是否水平居中
android:layout_centerVertical="true/false" 子类控件相对父类容器是否垂直居中
如下一些实例:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Button" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="88dp"
android:layout_marginTop="76dp"
android:text="Button" />
</RelativeLayout>
三:子类控件相对子类控件的一个位置属性
android:layout_below="@+id/button1" 该控件位于给定id控件的底部
android:layout_toRightOf="@+id/button1" 该控件位于给定id控件的右边
android:layout_above="@+id/button1" 该控件位于给定id控件的上面
android:layout_toLeftOf="@+id/button1" 该控件位于给定id控件的左边
android:layout_alignBaseline="@+id/button1"该控件的内容与给定id控件的内容在一条线上
android:layout_alignBottom="@+id/button1" 该控件的底部边缘与给定Id控件的底部边缘对齐
android:layout_alignLeft="@+id/button1" 该控件的底部边缘与给定Id控件的左边缘对齐
android:layout_alignRight="@+id/button1" 该控件的底部边缘与给定Id控件的右边缘对齐
android:layout_alignTop="@+id/button1" 该控件的底部边缘与给定Id控件的顶部边缘对齐
写几个例子练习一下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="88dp"
android:layout_marginTop="76dp"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_toRightOf="@+id/button1"
android:text="Button" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button2"
android:layout_toLeftOf="@+id/button2"
android:text="Button" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button2"
android:layout_below="@+id/button3"
android:text="Button" />
</RelativeLayout>
这里有一个属性单独练习一下: android:layout_alignBaseline="@+id/button1"该控件的内容与给定id控件的内容在一条线上
先看这个布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="30dp"
android:gravity="top"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button1"
android:layout_toRightOf="@+id/button1"
android:text="Button" />
</RelativeLayout>
然后把android:layout_alignBaseline属性加上可以看到两个Button里边的字符串在同一条水平线上
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="30dp"
android:gravity="top"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button1"
android:layout_toRightOf="@+id/button1"
android:text="Button" />
</RelativeLayout>