代码接着上文:《Android布局学习(一)——线性布局LinearLayout》继续编写。
相对布局RelativeLayout
通过相对定位的方式让空间出现在布局的任意位置,其中要学的属性有很多。
一、需要知道的九个属性
1、基于父控件定位
修改布局
layout_alignParentLeft
layout_alignParentRight
layout_alignParentTop
layout_alignParentBottom
layout_centerInParent
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button 1"
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="button 2"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
/>
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button 3"
android:layout_centerInParent="true"
/>
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button 4"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
/>
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button 5"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
/>
</RelativeLayout>
其实看代码很简单,左上、右上、中、左下、右下
2、基于其他控件定位
layout_toLeftOf
layout_toRightOf
layout_above
layout_below
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button 3"
android:layout_centerInParent="true"
/>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button 1"
android:layout_above="@+id/button3"
android:layout_toLeftOf="@+id/button3"
/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button 2"
android:layout_above="@id/button3"
android:layout_toRightOf="@+id/button3"
/>
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button 4"
android:layout_below="@+id/button3"
android:layout_toLeftOf="@+id/button3"
/>
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button 5"
android:layout_below="@+id/button3"
android:layout_toRightOf="@+id/button3"
/>
</RelativeLayout>
其中,一个控件引用另外一个控件时,尽量将该控件定义在要引用控件之后,不然会找到找不到id
的情况(尽管我测试能找到)