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: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