RlativeLayout(1)——根据父容器定位

本文介绍了RelativeLayout中单个控件的定位属性,如layout_alignParentLeft、layout_alignParentRight等,以及如何通过组合这些属性实现界面的多样化布局。通过实例展示了不同属性组合的效果,并强调了理解并灵活运用这些属性的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单个控件属性(1)

layout_alignParentLeft(左对齐)
layout_alignParentRight(右对齐)
layout_alignParentTop(顶对齐)
layout_alignParentBottom(底对齐)
layout_centerHorizontal(水平居中)
layout_centerVertical(竖直居中)
layout_centerInParent(中央位置)

center(中央)align(对齐)horizontal(水平)vertical(垂直)

  • 只有一个属性
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent">

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="centerInparent"
        android:layout_centerInParent="true"
        android:id="@+id/mainTextView2"
        android:textSize="10sp"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="centarHorizontal"
        android:textSize="10sp"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="alignParentLeft"
        android:layout_alignParentLeft="true"
        android:id="@+id/mainTextView1"
        android:textSize="10sp"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="alignParentRight"
        android:layout_alignParentRight="true"
        android:textSize="10sp"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="alignParentButtom"
        android:layout_alignParentBottom="true"
        android:textSize="10sp"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="centerVertial"
        android:layout_centerVertical="true"
        android:textSize="10sp"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="alignParentTop"
        android:layout_alignParentTop="true"
        android:textSize="10sp"/>

</RelativeLayout>

(为什么有的有id,有的没有?)
这里写图片描述

上面就是我在使用aide进行布局的结果,可以看到,在只有一个对父容器定位的属性的布局的时候,默认是在左边的。

  • 两个属性
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent">

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="右上"
        android:textSize="25sp"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:id="@+id/mainTextView1"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="左上"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:textSize="25sp"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="中左"
        android:textSize="25sp"
        android:layout_centerVertical="true"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="左下"
        android:layout_alignParentLeft="true"
        android:textSize="25sp"
        android:layout_alignParentBottom="true"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="上中"
        android:textSize="25sp"
        android:layout_centerHorizontal="true"
        android:layout_alignParentTop="true"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:textSize="25sp"
        android:text="中右"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerHorizontal="true"
        android:textSize="25sp"
        android:layout_alignParentBottom="true"
        android:text="下中"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:textSize="25sp"
        android:text="右下"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:textSize="25sp"
        android:text="中间"/>

</RelativeLayout>

这里写图片描述

看的出来这个布局还是很好符合正常人的思维的,只要组合就可以把控件放在界面的各个方向。
这个就是控件在相对布局里面的一个简单布局方法(个人感觉适合和后面的兄弟控件组合使用)

  • 总结
    感觉其实这些属性都是很简单的布局理解,注意穿插使用不同的单个属性达到组合效果才是真正的优美布局该有的。而且属性的名称也并非完全没有规律,注意区分应该就能很好的掌握了。(属性的true和false有什么用?
  • 还有一个好玩的:如果给控件不能共存的属性时(不如Right和Left同时为真)会怎么样?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值