您的位置:首页 > 移动开发 > Android开发

Android学习笔记十四之RelativeLayout相对布局

2016-06-30 15:30 363 查看

Android学习笔记十四之RelativeLayout相对布局

  跟前面介绍的LinearLayout线性布局一样,RelativeLayout相对布局也是我们常用的布局之一,但是,不同于LinearLayout线性布局,RelativeLayout中控件的排列方式都是相对的。下面我们介绍一下RelativeLayout相对布局的常用属性:

1、根据父布局定位

左对齐:android:layout_alighParentLeft

右对齐:android:layout_alighParentRight

顶端对齐:android:layout_alighParentTop

底部对齐:android:layout_alighParentBottom

水平居中:android:layout_centerHorizontal

垂直居中:android:layout_centerVertical

中央位置:android:layout_centerInParent

这里说的相对定位都是相对于父布局来讲的。

2、根据同一父布局内的其他组件定位

左边:android:layout_toLeftOf

右边:android:layout_toRightOf

上方:android:layout_above

下方:android:layout_below

对齐上边界:android:layout_alignTop

对齐下边界:android:layout_alignBottom

对齐左边界:android:layout_alignLeft

对齐右边界:android:layout_alignRight

3、设置组件与父布局的边距

android:layout_margin: 设置控件的四个方向与外部的距离,依次是上、左、下、右

android:layout_marginLeft: 设置控件的左边与外部的距离

android:layout_marginTop: 设置控件的顶部与外部的距离

android:layout_marginRight: 设置控件的右边与外部的距离

android:layout_marginBottom: 设置控件的下方与外部的距离

4、设置组件内容与组件的距离

android:padding :设定控件内部留出的边距

android:paddingLeft: 设定控件的左边的内部留出的边距

android:paddingTop: 设定控件的上边的内部留出的边距

android:paddingRight: 设定控件的右边的内部留出的边距

android:paddingBottom: 设定控件的下边的内部留出的边距

以上就是RelativeLayout的常用属性,我们利用这些属性可以设计出很复杂的界面,例如下面的例子:

布局文件代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="200dp">

<TextView
android:id="@+id/tv_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="实现梅花布局"
android:textSize="18sp" />

<Button
android:id="@+id/btn_001"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="中心" />

<Button
android:id="@+id/btn_002"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/btn_001"
android:layout_centerHorizontal="true"
android:text="上方" />

<Button
android:id="@+id/btn_003"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/btn_001"
android:text="左边" />

<Button
android:id="@+id/btn_004"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btn_001"
android:layout_centerHorizontal="true"
android:text="下方" />

<Button
android:id="@+id/btn_005"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/btn_001"
android:text="右边" />

</RelativeLayout>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="200dp">

<Button
android:id="@+id/btn_006"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="20dp"
android:text="中心" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/btn_006"
android:layout_centerHorizontal="true"
android:paddingTop="20dp"
android:text="上方" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/btn_006"
android:paddingLeft="40dp"
android:text="左边" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btn_006"
android:layout_centerHorizontal="true"
android:paddingBottom="20dp"
android:text="下方" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/btn_006"
android:paddingRight="40dp"
android:text="右边" />

</RelativeLayout>

</LinearLayout>


效果图:



如图所示是实现梅花布局的,上方图是没有设置padding属性的,下方的是设置了padding属性的,关于RelativeLayout相对布局就简单介绍到这里,利用布局嵌套我们可以实现比较复杂的界面布局,下一节,我们介绍TabLayout表格布局。

附上RelativeLayout的国内镜像API,本例子的Demo比较简单,就不上传代码了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: