1.1 相对布局窗口内子组件的位置总是相对兄弟组件、父容器来决定的,因此叫相对布局
1.2 id型
@+id和@id的区别
@+id/x1(添加新ID)
@id/x1(引用此ID)
相对于指定元素(根据ID指定)
1.3 layout_toRightOf,layout_toLeftOf(是一种靠拢动作)
实例:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="270dp"
android:layout_height="160dp"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按钮1"
android:id="@+id/btn_main_blue"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="按钮2" />
<Button
android:id="@+id/btn_main_blue2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="按钮3" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="按钮4" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/btn_main_blue2"
android:layout_alignParentBottom="true"
android:text="按钮5"
/>
</RelativeLayout>
效果如下
2. 网格布局
2.1 常用属性
GridLayout布局相关属性:rowCount、columnCount
GridLayout中子控件相关属性:layout_gravity=“fill_horizontal|fill_vertical”
2.2 Space标签的作用:挡住控件,让其不超出网格的范围
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:rowCount="5"
android:columnCount="4"
tools:context=".MainActivity">
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="1"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="2"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="3"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="/"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="4"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="5"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="6"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="×"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="7"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="8"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="9"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="-"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="fill_horizontal"
android:layout_columnSpan="2"
android:text="0"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="."
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_rowSpan="2"
android:layout_gravity="fill_vertical"
android:text="+"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_columnSpan="3"
android:layout_gravity="fill_horizontal"
android:text="="
/>
<Space />
</GridLayout>
效果如下: