使用RelativeLayout,可以很容易地实现锚定视图。观察以下的main.xml文件,它包含了5个被内嵌在<RelativeLayout>中的Button:
<RelativeLayout
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
xmlns:
Android="http://schemas.
Android.com/apk/res/
Android">
<Button
Android:id="@+id/button1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Top Left"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true" />
<Button
Android:id="@+id/button2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Top Right"
Android:layout_alignParentTop="true"
Android:layout_alignParentRight="true" />
<Button
Android:id="@+id/button3"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Bottom Left"
Android:layout_alignParentLeft="true"
Android:layout_alignParentBottom="true" />
<Button
Android:id="@+id/button4"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Bottom Right"
Android:layout_alignParentRight="true"
Android:layout_alignParentBottom="true" />
<Button
Android:id="@+id/button5"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="Middle"
Android:layout_centerVertical="true"
Android:layout_centerHorizontal="true" />
</RelativeLayout>
注意以下的属性,这些属性被用在了不同的Button上面:
layout_alignParentLeft —— 把子视图设置在父视图内部的左边
layout_alignParentRight —— 把子视图设置在父视图内部的右边
layout_alignParentTop —— 把子视图设置在父视图内部的顶部
layout_alignParentBottom —— 把子视图设置在父视图内部的底部
layout_centerVertical —— 把子视图设置在父视图内部的垂直中心
layout_centerHorizontal —— 把子视图设置在父视图内部的水平中心
下图展示了在竖屏portrait模式下,程序是如何显示的:
[附件]
当屏幕方向变成 横屏landscape模式,四个按钮被分配到了屏幕的四周,中间的按钮还是被分配到了屏幕的中间,同时它也被拉伸了。见下图:
摘自 manoel的专栏