Android Studio新手开发又又又双一天

目录

1.相对布局RelativeLayout

RelativeLayout的核心属性表


1.相对布局RelativeLayout

        与线性布局相比,相对布局通过相对定位,子控件位置更灵活,能实现更复杂的布局,有助于减少布局嵌套。相对布局的下级视图位置是由其他视图决定的,需要有具体的参照物才可以确定位置。如果没有设置参照物则下级视图默认显示在相对布局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=".MainActivity2">
    <TextView
        android:id="@+id/textView_1"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="你好,世界!"
        android:textSize="20sp"
        android:background="@color/teal_200"/>


</RelativeLayout>

依据上面的代码,下面是效果图,可以看出在没有设置参照物时视图排列在左上角。

RelativeLayout的核心属性表

属性类别属性名称作用与说明
相对于父容器定位android:layout_alignParentTop控件顶部与父容器顶部对齐
android:layout_alignParentBottom控件底部与父容器底部对齐
android:layout_alignParentLeft控件左侧与父容器左侧对齐
android:layout_alignParentRight控件右侧与父容器右侧对齐
android:layout_alignParentStart控件起始边与父容器起始边对齐
android:layout_alignParentEnd控件结束边与父容器结束边对齐
居中于父容器android:layout_centerInParent控件在父容器中完全居中
android:layout_centerHorizontal控件在父容器中水平居中
android:layout_centerVertical控件在父容器中垂直居中
相对于兄弟控件定位android:layout_above控件位于指定兄弟控件的上方
android:layout_below控件位于指定兄弟控件的下方
android:layout_toLeftOf控件位于指定兄弟控件的左侧
android:layout_toRightOf控件位于指定兄弟控件的右侧
android:layout_toStartOf控件位于指定兄弟控件的起始方向
android:layout_toEndOf控件位于指定兄弟控件的结束方向
与兄弟控件对齐android:layout_alignTop控件顶部与指定兄弟控件顶部对齐
android:layout_alignBottom控件底部与指定兄弟控件底部对齐
android:layout_alignLeft控件左侧与指定兄弟控件左侧对齐
android:layout_alignRight控件右侧与指定兄弟控件右侧对齐
android:layout_alignStart控件起始边与指定兄弟控件起始边对齐
android:layout_alignEnd控件结束边与指定兄弟控件结束边对齐
android:layout_alignBaseline控件文本基线与指定兄弟控件文本基线对齐

下面是代码示例。

代码解释:

        1.视图textView_center的属性layout_centerInParent="true"表示该视图位于父视图即RelativeLayout的中间位置;

        2.视图textView_center_horizontal的属性layout_centerhorizontal="true"表示该视图位于父视图的水平方向中间位置;

        3.视图textView_center_vertical的属性layout_centervertical="true"表示该视图位于父视图的垂直方向中间位置;

        4.视图textView_parent_left的属性android:layout_alignParentLeft="true"表示该视图位于父视图的左边对齐,在效果图中并没有显示是因为被视图textView_parent_top覆盖了;

        5.视图textView_parent_right的属性android:layout_alignParentRight="true"表示该视图位于父视图的右边对齐;

        6.视图textView_parent_top的属性android:layout_alignParentTop="true"表示该视图位于父视图的底部对齐;

        7.视图textView_parent_bottom的属性android:layout_alignParentBottom="true"表示该视图位于父视图的底部对齐;

        8.视图textView_left_center的属性android:layout_alignTop="@+id/textView_center"与android:layout_toLeftOf="@+id/textView_center"表示该视图位于视图textView_center的左边并且底部对齐;

        9.视图textView_right_center的属性android:layout_alignBottom="@+id/textView_center"与 android:layout_toRightOf="@+id/textView_center"表示该视图位于视图textView_center的右边并且底部对齐;

        10.视图textView_above_center的属性android:layout_above="@+id/textView_center"与 android:layout_alignLeft="@+id/textView_center"表示该视图位于视图textView_center的上面并且左对齐;

        11.视图textView_below_center的属性android:layout_below="@+id/textView_center"与 android:layout_alignRight="@+id/textView_center"表示该视图位于视图textView_center的下面并且右对齐。

<?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=".MainActivity2">

    <TextView
        android:id="@+id/textView_center"
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:layout_centerInParent="true"
        android:background="@color/red"
        android:gravity="center"
        android:text="我在中间"
        android:textColor="#000000"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/textView_center_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:background="@color/teal_200"
        android:text="我在水平中间"
        android:textColor="#000000"
        android:textSize="15sp" />

    <TextView
        android:id="@+id/textView_center_vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:background="@color/teal_200"
        android:text="我在垂直中间"
        android:textColor="#000000"
        android:textSize="15sp" />

    <TextView
        android:id="@+id/textView_parent_left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:background="@color/teal_200"
        android:text="我跟上级左边对齐"
        android:textSize="15sp"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/textView_parent_right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:background="@color/teal_200"
        android:text="我跟上级右边对齐"
        android:textColor="#000000"
        android:textSize="15sp" />

    <TextView
        android:id="@+id/textView_parent_top"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="@color/teal_200"
        android:text="我跟上级顶部对齐"
        android:textColor="#000000"
        android:textSize="15sp" />

    <TextView
        android:id="@+id/textView_parent_bottom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@color/teal_200"
        android:text="我跟上级底部对齐"
        android:textColor="#000000"
        android:textSize="15sp" />

    <TextView
        android:id="@+id/textView_left_center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/textView_center"
        android:layout_toLeftOf="@+id/textView_center"
        android:background="@color/teal_200"
        android:text="我在中间左边顶部对齐"
        android:textColor="#000000"
        android:textSize="15sp" />

    <TextView
        android:id="@+id/textView_right_center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView_center"
        android:layout_toRightOf="@+id/textView_center"
        android:background="@color/teal_200"
        android:text="我在中间右边底部对齐"
        android:textColor="#000000"
        android:textSize="15sp" />

    <TextView
        android:id="@+id/textView_above_center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView_center"
        android:layout_alignLeft="@+id/textView_center"
        android:background="@color/teal_200"
        android:text="我在中间上面左对齐"
        android:textColor="#000000"
        android:textSize="15sp" />

    <TextView
        android:id="@+id/textView_below_center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView_center"
        android:layout_alignRight="@+id/textView_center"
        android:background="@color/teal_200"
        android:text="我在中间下面右对齐"
        android:textColor="#000000"
        android:textSize="15sp" />


</RelativeLayout>

下面是代码效果图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值