天天看點

Android布局——Relative Layout

Android布局——Relative Layout  

2012-03-21 14:54:58|  分類: Android |  标簽:relative  layout  android布局   |字号 訂閱

java.lang.Object
   ? android.view.View
   ? android.view.ViewGroup
   ? android.widget.RelativeLayout

LinearLayout 是一個ViewGroup,将子View以一種相對位置的方式進行排列。

View位置由與其兄弟View的相對位置(比如在一個View的左邊或下面),或者與RelativeLayout區域的相對位置決定(比如與底部對齊)。

在設計UI中,這個布局很重要,因為它可以減少ViewGroups内嵌,如果你發現用到很多LinearLayout布局時,可以考慮使用RelativeLayout代替。

1. 建立一個新項目:HelloRelativeLayout

2. 修改檔案  res/layout/main.xml

<?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">

              <TextView

                       android:id="@+id/label"

                       android:layout_width="fill_parent"

                       android:layout_height="wrap_content"

                      android:text="Type here:"/>

           <EditText

                     android:id="@+id/entry"

                     android:layout_width="fill_parent"

                     android:layout_height="wrap_content"

                    android:background="@android:drawable/editbox_background"

                    android:layout_below="@id/label"/>

          <Button

                     android:id="@+id/ok"

                     android:layout_width="wrap_content"

                     android:layout_height="wrap_content"

                     android:layout_below="@id/entry"

                    android:layout_alignParentRight="true"

                    android:layout_marginLeft="10dip"

                    android:text="OK"/>

       <Button

                    android:layout_width="wrap_content"

                    android:layout_height="wrap_content"

                    android:layout_toLeftOf="@id/ok"

                    android:layout_alignTop="@id/ok"

                    android:text="Cancel"/>

</RelativeLayout>

當使用RelativeLayout布局時,可以使用android:layout_* 這些屬性[如layout_below, layout_alignParentRight, layout_toLeftOf]來描述View之間的互相位置。

3.修改onCreate()方法

publicvoid onCreate(Bundle savedInstanceState){

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

}

4.運作結果

Android布局——Relative Layout

屬性

android:layout_above            A的底線在B(給定ID的View)上方

android:layout_alignBaseline       A與B的底線對齊

android:layout_alignLeft              A與B左邊界對齊

android:layout_alignParentBottom    若為"true" A的底部邊界與A父View的底部邊界對齊

android:layout_alignParentLeft         若為"true" A的左邊界與A父View的左邊界對齊

android:layout_alignParentRight        若為"true" A的右邊界與A父View的右邊界對齊

android:layout_alignParentTop       若為"true" A的頂部邊界與A父View的頂部邊界對齊

android:layout_alignRight               A與B的右邊界對齊

android:layout_alignTop

android:layout_alignWithParentIfMissing   若為"true",當使用layout_toLeftOf, layout_toRightOf時,若B找不到,則用A的父View代替

android:layout_below            A在B之下

android:layout_centerHorizontal        若為"true",A在A的父View的水準中央。

android:layout_centerVertical

android:layout_toLeftOf                A的右邊界在B的左邊

android:layout_toRightOf