欢迎回来,本期继续来介绍RelativeLayout相对布局。

<?xml version="1.0" encoding="utf-8"?>
<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="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


</RelativeLayout>

首先将你的布局改为RelativeLayout,下面看看它又有哪些属性。

android:layout_centerHorizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 位于父元素的下边缘
android:layout_alignParentLeft 位于父元素的左边缘
android:layout_alignParentRight 位于父元素的右边缘
android:layout_alignParentTop 位于父元素的上边缘

下面的属性需要填写id引用

android:layout_below 位于元素的下方
android:layout_above 位于元素的的上方
android:layout_toLeftOf 位于元素的左边
android:layout_toRightOf 位于元素的右边

android:layout_alignTop 该元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 该元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 该元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 该元素的右边缘和某元素的的右边缘对齐

相比线性布局来说,相对布局的属性非常多。但是在实际使用的时候是不需要那么多的,按需即可,下面举一些简单的例子。

在开始之前介绍一下组件的ID,这个ID就相当于组件的唯一标识符,在不同的xml布局文件中可以重复,但在使用的时候难以区分,所以不建议重名。

那么如何定义一个ID呢?需要用到android:id这个属性,它的值的格式必须为”@+id/******”,星号可以自定义,但不能以数字开头。

<ImageView
        android:id="@+id/imgboxCenter"
        android:layout_width="128dp"
        android:layout_height="128dp"
        android:background="#3a9fff"/>

像上面这样,就给一个ImageView定义了一个ID。

那回到上面,举一些简单的例子来看看,相对布局的属性有什么作用效果。

<?xml version="1.0" encoding="utf-8"?>
<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="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <!-- 蓝色 在父组件左下角 -->
    <ImageView
        android:id="@+id/imgboxParentLeftBottom"
        android:layout_width="128dp"
        android:layout_height="128dp"
        android:background="#3a9fff"
        android:layout_alignParentLeft="true"
        android:layout_alignParentBottom="true"/>

    <!-- 蓝色 在父组件中间 -->
    <ImageView
        android:id="@+id/imgboxCenter"
        android:layout_width="128dp"
        android:layout_height="128dp"
        android:background="#3a9fff"
        android:layout_centerInParent="true"/>

    <!-- 青色 在中间盒子的左边 -->
    <ImageView
        android:id="@+id/imgboxCenterLeft"
        android:layout_width="128dp"
        android:layout_height="128dp"
        android:background="#3a9bbb"
        android:layout_centerInParent="true"
        android:layout_toLeftOf="@id/imgboxCenter"/>
    <!-- 粉红色 在中间盒子的右边 注意这里没有centerInParent属性 默认在父组件上方 -->
    <ImageView
        android:id="@+id/imgboxCenterRight"
        android:layout_width="128dp"
        android:layout_height="128dp"
        android:background="#ff6ec7"
        android:layout_toRightOf="@id/imgboxCenter"/>

</RelativeLayout>

具体说明请看布局内注释,看完这个例子,也该知道这些属性有什么用处了吧。

那么本期就到此结束,非常简短,但内容比上一期多一些,由于Android Studio有代码提示功能,只要输入对应的关键词即可,所以也无需多记。


0 条评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注