我们从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_toRightOf: 表示该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。
运行结果如下: