97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

  您的位置:華清遠(yuǎn)見(jiàn)教育科技集團(tuán) >> 新聞動(dòng)態(tài) >> Android資料 >> Android界面布局之相對(duì)布局  
 
Android界面布局之相對(duì)布局
分享到:

相對(duì)布局(RelativeLayout)是一種非常靈活的Android界面布局方式,能夠通過(guò)指定界面元素與其他元素的相對(duì)位置關(guān)系,確定界面中所有元素的布局位置,能夠大限度保證在各種屏幕類型的手機(jī)上正確顯示界面布局。

在相對(duì)布局中,子控件的位置是相對(duì)兄弟控件或父容器而決定的。出于性能考慮,在設(shè)計(jì)相對(duì)布局時(shí)要按照控件之間的依賴關(guān)系排列,如View A 的位置相對(duì)于View B 來(lái)決定,則需要保證在布局文件中View B 在View A 的前面。

在進(jìn)行相對(duì)布局時(shí)用到的屬性很多,首先來(lái)看屬性值只為true 或false 的屬性,如表1-1所示。

表1-1 相對(duì)布局中只取true 或false 的屬性及說(shuō)明

屬性名稱 屬性說(shuō)明
android:layout_centerHorizontal 當(dāng)前控件位于父控件的橫向中間位置
android:layout_centerVertical 當(dāng)前控件位于父控件的縱向中間位置
android:layout_centerInParent 當(dāng)前控件位于父控件的中央位置
android:layout_alignParentBottom 當(dāng)前控件底端與父控件底端對(duì)齊

接下來(lái)看屬性值為其他控件ID的屬性,如表1-2所示。

表1-2 相對(duì)布局中取值為其他控件ID 的屬性及

屬性名稱 屬性說(shuō)明
android:layout_toRightOf 使當(dāng)前控件位于給出ID
android:layout_toLeftOf 使當(dāng)前控件位于給出ID
android:layout_above 使當(dāng)前控件位于給出ID
android:layout_below 使當(dāng)前控件位于給出ID
android:layout_alignTop 使當(dāng)前控件的上邊界位于給出ID
android:layout_alignBottom 使當(dāng)前控件的下邊界位于給出ID
android:layout_alignLeft 使當(dāng)前控件的左邊界位于給出ID
android:layout_alignRight 使當(dāng)前控件的右邊界位于給出ID

后要介紹的是屬性值以像素為單位的屬性及說(shuō)明,如表1-3所示。

表1-3 相對(duì)布局中取值為像素的屬性及說(shuō)明

屬性名稱 屬性說(shuō)明
android:layout_marginLeft 當(dāng)前控件左側(cè)的留白
android:layout_marginRight 當(dāng)前控件右側(cè)的留白
android:layout_marginTop 當(dāng)前控件上方的留白
android:layout_marginBottom 當(dāng)前控件下方的留白

需要注意的是在進(jìn)行相對(duì)布局時(shí)要避免出現(xiàn)循環(huán)依賴,例如,設(shè)置相對(duì)布局在父容器中的排列方式為WRAP_CONTENT,就不能再將相對(duì)布局的子控件設(shè)置為ALIGN_PARENT_BOTTOM。因?yàn)檫@樣會(huì)造成子控件和父控件相互依賴和參照的錯(cuò)誤。

以下用一個(gè)相對(duì)布局的例子來(lái)加深對(duì)線性布局的理解。首先來(lái)看一下相對(duì)布局的效果圖,如圖-1所示。


圖-1 相對(duì)布局效果圖

為達(dá)到以上效果,按以下步驟進(jìn)行操作。

(1)添加TextView控件(用戶名),相對(duì)布局會(huì)將TextView控件放置在屏幕的上方。

(2)添加EditText控件(輸入框),并聲明該控件的位置在TextView控件的下方,相對(duì)布局會(huì)根據(jù)TextView的位置確定EditText控件的位置。

(3)添加第一個(gè)Button控件(“取消”按鈕),聲明在EditText控件的下方,且在父控件的右邊。

(4)添加第二個(gè)Button控件(“確認(rèn)”按鈕),聲明該控件在第一個(gè)Button控件的左方,且與第一個(gè)Button控件處于相同的水平位置。

相對(duì)布局在main.xml文件的完整代碼如代碼清單1所示。

代碼清單1 main.xml

<?xml version="1.0" encoding="utf-8"?>

    <RelativeLayout android:id="@+id/RelativeLayout01"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <TextView android:id="@+id/label"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:text="用戶名:">
        </TextView>
        <EditText android:id="@+id/entry"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:layout_below="@id/label">
        </EditText>
        <Button android:id="@+id/cancel"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginLeft="10dip"
            android:layout_below="@id/entry"
            android:text="取消" >
        </Button>
        <Button android:id="@+id/ok"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_toLeftOf="@id/cancel"
            android:layout_alignTop="@id/cancel"
            android:text="確認(rèn)">、
        </Button>
    </RelativeLayout>

在代碼中,第3行使用了標(biāo)簽聲明一個(gè)相對(duì)布局;第15行使用位置屬性android:layout_below,確定EditText控件在ID為label的元素下方;第20行使用屬性android:layout_alignParentRight,聲明該元素在其父元素的右邊邊界對(duì)齊;第21行設(shè)定屬性android:layout_marginLeft,左移10dip;第22行聲明該元素在ID為entry的元素下方;第28行聲明使用屬性android:layout_toLeftOf,聲明該元素在ID為cancel元素的左邊;第29行使用屬性android:layout_alignTop,聲明該元素與ID為cancel的元素在相同的水平位置。

 更多相關(guān)文章

·Android界面布局之表格布局
·Android界面布局之框架布局
·Android界面布局之線性布局
·Android開(kāi)發(fā)界面布局概述
·Android用戶界面開(kāi)發(fā)基礎(chǔ)