在一般情况下用LinearLayout和TableLayout等就已经足够了,但是有的时候仅仅用这些显的很不灵活,有的时候我们希望有绝对布局的方式,Android里确实有这样的一个绝对布局方式,不过已经被废弃了,在这里不推荐使用,那我们就用RelativeLayout吧--相对布局,很灵活的哦~~~如果再配合上LinearLayout等布局,那么,对于大多数的布局要求就都可以满足了。
首先我们来看RelativeLayout的属性:
// 相对于给定ID控件
Android:layout_above 将该控件的底部置于给定ID的控件之上;
Android:layout_below 将该控件的底部置于给定ID的控件之下;
Android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐;
Android:layout_toRightOf 将该控件的左边缘与给定ID的控件右边缘对齐;
Android:layout_alignBaseline 将该控件的baseline与给定ID的baseline对齐;
Android:layout_alignTop 将该控件的顶部边缘与给定ID的顶部边缘对齐;
Android:layout_alignBottom 将该控件的底部边缘与给定ID的底部边缘对齐;
Android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐;
Android:layout_alignRight 将该控件的右边缘与给定ID的右边缘对齐;
// 相对于父组件
Android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐;
Android:layout_alignParentBottom 如果为true,将该控件的底部与其父控件的底部对齐;
Android:layout_alignParentLeft 如果为true,将该控件的左部与其父控件的左部对齐;
Android:layout_alignParentRight 如果为true,将该控件的右部与其父控件的右部对齐;
// 居中
Android:layout_centerHorizontal 如果为true,将该控件的置于水平居中;
Android:layout_centerVertical 如果为true,将该控件的置于垂直居中;
Android:layout_centerInParent 如果为true,将该控件的置于父控件的中央;
// 指定移动像素,值为px
Android:layout_marginTop 上偏移的值;
Android:layout_marginBottom 下偏移的值;
Android:layout_marginLeft 左偏移的值;
Android:layout_marginRight 右偏移的值;
下面我们再来看个例子:
<?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"
android:padding="10px"
>
<TextView
android:id="@+id/textView"
android:text="TextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<!--没有对textView的位置做设置,默认为RelativeLayout容器的左上角 -->
<EditText
android:id="@+id/editText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/textView"
android:background="@android:drawable/editbox_background"
/>
<!--editText控件位于textView控件的下面-->
<Button
android:id="@+id/buttonSure"
android:text="确定"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/editText"
android:layout_alignParentRight="true"
android:layout_marginLeft="10px"
/>
<!--buttonSure控件在editText控件的下面,并且于父容器的位置关系为右对齐。 android:layout_marginLeft="10px"
设置buttonSure控件的左外边距为10像素,即此控件的左边与其他控件相距10像素的距离-->
<Button
android:id="@+id/buttonCancel"
android:text="取消"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/buttonSure"
android:layout_alignTop="@id/buttonSure"
/>
<!--buttonCancel为相对于buttonSure的位置确定。buttonCancel控件的右边缘与buttonSure控件的左边缘对齐,
顶部边缘与buttonSure控件的 顶部边缘对齐-->
</RelativeLayout>
到此为止,相信有过Andriod编程经验的人都应该学会relativeLayout的使用了吧,呵呵....