天天看点

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