Android Layout之三:RalativeLayout(一)


我们从RalativeLayout可以知道,该布局的父子Container中所有的Widgets之间的位置都是相对的。你可以把Widget A放在Widget的左下方,或者放在Widget的底边并和Container的底边之间。它允许为Container或者widget指定其相对于其他widgets或者父Container的位置。Container或者widgets是按顺序排列的,如果第一个Container或者widget在屏幕的中央,那么相对于其的其他Container和widgets将以屏幕的中央来排列。如果使用XML的Layout文件来定义,被引用的Container或者widgets必须被定义。

在XML的layout文件中,我们就能够引用同一文件的Widgets,并且可以标识其他Widgets的相对位置。

标识一个Widgets在其Container中的位置,我们有下面的属性参数可以用,这些参数的值可以使true或者false:
1).android:layout_alignParentTop: 表示widget的顶部和Container的顶部重合。
2).android:layout_alignParentBottom: 表示widget的底部和Container的底部重合。
3).android:layout_
alignParentLeft:  表示widget的左边和Container的左边重合。
4).android:layout_ alignParentRight:  表示widget的右边和Container的 边重合。
5).android:layout_ centerHorizontal:  表示widget处于Container水平方向上的中间。
6).android:layout_ centerVertical:  表示widget 处于Container垂直方向上的中间
7).android:layout_ centerInParent:  表示widget 处于Container平面上的正中间

标识同一个Container中的不同的widgets之间的相对位置时,可有用如下的属性参数,参数值是其他widgets的应用。相对位置上的widgets的引用的设定如下:首先必须给所有的被引用的widgets赋予标示符,通过android:id的属性,格式如@+id/widget1,然后在其他widget引用的时候使用同样的标示符,格式如@id/widget1,例:如果widget A标识为@+id/widget A,则widget B在其属性里面通过@id/widget A引用widget A。
1).android:layout_above: 表示该widget必须位于参数值标识的widget的上方。
2).android:layout_below: 表示该widget必须位于参数值标识的widget的下方。
3).android:layout_toLeftOf: 表示该widget必须位于参数值标识的widget的左方。
4).android:layout_toLeftOf: 表示该widget必须位于参数值标识的widget的右方。
5).android:layout_alignTop: 表示该widget的顶部必须参数值标识的widget的顶部重合。
6).android:layout_alignBottom: 表示该widget的底部必须参数值标识的widget的底部重合。
7).android:layout_alignLeft: 表示该widget的左边必须参数值标识的widget的左边重合。 8).android:layout_alignRight: 表示该widget的右边必须参数值标识的widget的右边重合。
9).android:layout_alignBaseLine: 表示该widget的BaseLine必须参数值标识的widget的BaseLine重合。这个主要用于Label或者其他包含文本的widgets。

在我们引用widget时不能引用该文件中尚未定义的widget。

具体的示例如下:
<?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="wrap_content"
android:padding="5px"
>
<TextView android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="URL:"
android:paddingTop="15px"/>
<EditText android:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/label"
android:layout_alignBaseline="@id/label"
/>
<Button android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/entry"
android:layout_alignRight="@id/entry"
android:text="OK"
/>    
<Button android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/ok"
android:layout_alignTop="@id/ok"
android:text="cancel"
/>    
</RelativeLayout>
示图如下:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值