寶雞市城鄉(xiāng)建設(shè)規(guī)劃局官方網(wǎng)站活動策劃方案詳細(xì)模板
一、RelativeLayout的概述
????????RelativeLayout(相對布局)是一種根據(jù)父容器和兄弟控件作為參照來確定控件位置的布局方式。在很多時候,線性布局還不能滿足我們的需求,比如,我們在一行(列)上顯示多個控件,這就需要使用RelativeLayout來進行相對布局,RelativeLayout允許子元素指定它們相對于其他元素或父元素的位置(通過ID指定)。因此,你可以以右對齊、上下或置于屏幕中央的形式來排列兩個元素。元素按順序排列,因此如果第一個元素在屏幕的中央,那么相對于這個元素的其他元素將以屏幕中央的相對位置來排列。如果使用XML來指定這個布局,在你定義它之前,被關(guān)聯(lián)的元素必須定義。RelativeLayout視圖顯示了屏幕元素的類名稱,下面是每個元素的屬性列表。這些屬性一部分由元素直接提供,另一部分由容器的LayoutParams成員(RelativeLayout的子類)提供。
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent">......</RelativeLayout>
二、根據(jù)父容器定位
????????在相對布局中,可以通過以下的屬性讓的組合讓控件處于父容器左上角、右上角、左下角、右下角、上下左右居中,正居中等九個位置。屬性如下:
android:layout_alignParentLeft="true" 父容器左邊
android:layout_alignParentRight="true" 父容器右邊
android:layout_alignParentTop="true" 父容器頂部
android:layout_alignParentBottom="true" 父容器底部
android:layout_centerHorizontal="true" 水平方向居中
android:layout_centerVertical="true" 垂直方向居中
android:layout_centerInParent="true" 水平垂直都居中
?示例1:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentStart="true"android:layout_alignParentTop="true"android:textSize="12sp"android:text="相對父容器上左" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_alignParentTop="true"android:textSize="12sp"android:text="相對父容器上中" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_alignParentTop="true"android:textSize="12sp"android:text="相對父容器上右" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentStart="true"android:layout_centerVertical="true"android:textSize="12sp"android:text="相對父容器中左" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_centerVertical="true"android:textSize="12sp"android:text="相對父容器中中" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_centerVertical="true"android:textSize="12sp"android:text="相對父容器中右" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentStart="true"android:layout_alignParentBottom="true"android:textSize="12sp"android:text="相對父容器下左" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_alignParentBottom="true"android:textSize="12sp"android:text="相對父容器下中" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:textSize="12sp"android:text="相對父容器下右" /></RelativeLayout>
示例1效果:
layout_centerInParent:水平垂直都居中即相對于父容器居中。
?三、根據(jù)兄弟控件定位
????????在相對布局中,還支持通過已確定位置的控件作為參考來確定其他控件的位置,以下的屬性讓的組合讓控件處于另外控件左上角、右上角、左下角、右下角、正上方、正下方、正左方、正右方等位置。屬性如下:
android:layout_toLeftOf="@+id/textview" 在textview控件左方
android:layout_toRightOf="@+id/textview" 在textview控件右方
android:layout_above="@+id/textview" 在textview控件上方
android:layout_below="@+id/textview" 在textview控件下方
android:layout_alignLeft="@+id/textview" 與textview控件左邊平齊
android:layout_alignRight="@+id/textview" 與textview控件右邊平齊
android:layout_alignTop="@+id/button1" 與button1控件上邊平齊
android:layout_alignBottom="@+id/button1" 與button1控件下邊平齊
?示例2:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:textSize="12sp"android:text="已確定位置控件BUTTON" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="12sp"android:layout_centerInParent="true"android:layout_toStartOf="@+id/button"android:text="相對控件BUTTON居左"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="12sp"android:layout_centerInParent="true"android:layout_toEndOf="@+id/button"android:text="相對控件BUTTON居右"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="12sp"android:layout_centerInParent="true"android:layout_above="@+id/button"android:text="相對控件BUTTON居上"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="12sp"android:layout_centerInParent="true"android:layout_below="@+id/button"android:text="相對控件BUTTON居下"/></RelativeLayout>
示例2效果圖:
3.2 給一個控件添加?android:layout_toLeftOf="@+id/button1"
?和layout_alignTop="@+id/button1"
?屬性后該控件處于button1的正左方
?同理,layout_alignxxxx的屬性也是這樣的用法。