相对布局-RelativeLayout
1.相对布局-RelativeLayout
1.简介
- 是参考某一个控件进行摆放其他控件的布局,根据指定的界面控件进行相对位置的调整
- 相对父:
- 相对兄弟:margin+padding
2.相对位置
- 相对父
- 父亲的左边
- 父亲的右边
- 父亲的顶部
- 父亲的垂直居中
- 父亲的水平居中
- 父亲的底部
- 相对兄弟
- A相对B,B要在A的前面进行定义
- 不能出现循环依赖
图中的组件1,2就是兄弟组件了,而组件3与组件1或组件2并不是兄弟组件,所以组件3不能通过 组件1或2来进行定位,比如layout_toleftof = "组件1"这样是会报错的!
2.属性
- 设置时true/false
- 设置的是相对的id
3.案例:梅花造型
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/girl"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxHeight="50dp"
android:maxWidth="50dp"
android:src="@mipmap/girl"
/>
<ImageView
android:id="@+id/download"
android:layout_toRightOf="@id/girl"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxHeight="50dp"
android:maxWidth="50dp"
android:src="@mipmap/download"
/>
<ImageView
android:id="@+id/city"
android:layout_toLeftOf="@id/girl"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxHeight="50dp"
android:maxWidth="50dp"
android:src="@mipmap/city"
/>
<ImageView
android:id="@+id/boy"
android:layout_centerHorizontal="true"
android:layout_below="@id/girl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxHeight="50dp"
android:maxWidth="50dp"
android:src="@mipmap/boy"
/>
<ImageView
android:layout_centerHorizontal="true"
android:layout_above="@id/girl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxHeight="50dp"
android:maxWidth="50dp"
android:src="@mipmap/boy"
/>
</RelativeLayout>
4.案例:父类的属性测试
布局文件代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".FrameLayoutTest">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="左边"
android:textColor="@color/black"
android:textSize="30dp"
/>
<TextView
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="右边"
android:textColor="@color/black"
android:textSize="30dp"
/>
<TextView
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="上边且居中"
android:textColor="@color/black"
android:textSize="30dp"
/>
<TextView
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下边且居中"
android:textColor="@color/black"
android:textSize="30dp"
/>
<TextView
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="垂直居中"
android:textColor="@color/black"
android:textSize="30dp"
/>
<TextView
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="居中"
android:textColor="@color/black"
android:textSize="30dp"
/>
</RelativeLayout>
</LinearLayout>
</LinearLayout>