佈局篇——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>