android RelativeLayout布局

安卓基础学习 Day 04|相对布局 相对布局及其应用 阅读详情
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    >

    <Button
        android:id="@+id/b1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="b1" />

    <Button
        android:id="@+id/b2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="b2" />


</RelativeLayout>

按道理来说 ,应该是b2贴在父容器左边,b1在中间,实际上

b1 b2重叠了 为什么会这个样子?

关键原因:父容器的 gravity 作用于所有子组件的整体重心

 安卓的坐标系是左上角原点(0,0)垂直往下,y的值越来越大,原点(0,0)平行向右,x的值 越来越大。然后原点(0,0)垂直向上,y 是负的。原点(0,0)平行向左,x 变成负的。
 

  • 如果子视图没有设置任何布局属性(如 layout_alignParentLeft、layout_centerInParent 等),则会根据父容器的 gravity 确定位置。
  • 如果子视图设置了明确的布局规则(如 “靠左”“居中” 等),则会优先遵循自身的布局规则,父容器的 gravity 对其不产生影响。

所以,子组件b1受到 父容器的 gravity 作用,居中 ,而父容器的 gravity 作用于所有子组件的整体重心,所以b1的位置刚好就是原点(0,0)。

b2设置的是靠近父容器左边,位置也是(0,0),因此就重叠了。

 虽然我的解释可能有问题。但是实际上。却达到了正确的效果。

约束类型具体属性优先级
强制坐标约束layout_x、layout_y1(最高)
父子对齐约束layout_alignParentXXX、layout_centerInParent 等2
子视图边界对齐约束layout_alignXXXOf(如 layout_alignRightOf)3
子视图方向约束layout_toXXXOf、layout_above 等4
偏移量约束layout_marginXXX5(最低)

(四)安卓开发中的相对布局(RelativeLayout)使用详解 相对布局通过其丰富的定位属性,开发者可以轻松实现视图的精确排列和对齐。无论是简单的居中显示,还是复杂的相对定位,相对布局都能胜任。同时,注意性能优化和布局设计的合理性,能让相对布局在实际开发中发挥最大价值。安卓开发中的相对布局(RelativeLayout)是一种非常灵活的布局方式,它允许开发者根据父容器或其他视图的位置来定位子视图。以下是对相对布局的详细讲解,包括其基本概念、主要属性、代码示例以及具体的使用场景。相对布局是一种视图容器(ViewGroup),可以包含其他视图(View)或视图组。 阅读详情

相关推荐

Android布局控件之RelativeLayout编程

通过使用RelativeLayout,我们可以以相对位置的方式来定义控件之间的关系,实现各种灵活的布局效果。在布局过程中,我们可以使用不同的属性设置来定位和对齐控件。RelativeLayout是Android中常用的布局控件之一,它可以让我们以相对位置的方式来定义控件之间的关系。在上述示例中,我们添加了一个ImageView控件,并将其放置在Button的下方。在上述XML布局中,我们使用了RelativeLayout作为根布局,并在其中放置了一个TextView和一个Button控件。

Byte_O_O的博客 189

Android中RecycleView的使用

MAinActivity的xml文件: <?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" a

qq_45973003的博客 1492

从SC7A20数据手册到代码:一步步搞定加速度值读取与换算(避坑指南)

本文详细解析了SC7A20三轴加速度传感器的数据手册,从寄存器配置到原始数据读取,再到加速度值的换算方法。通过代码示例和避坑指南,帮助开发者准确实现加速度值的读取与换算,适用于嵌入式开发和运动检测应用。

weixin_26878995的博客 586

Android评论功能的制作详解

第一步的话就是我们的布局文件的制作:主要是我们的MainActivity文件 布局文件的详细代码: <?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://sc

qq_45973003的博客 4486

Allegro模块复用:从原理图到PCB的完整流程与关键细节

本文详细介绍了Allegro模块复用从原理图到PCB的完整流程与关键细节,包括DSN和MDD文件的创建、模块调用的实战技巧以及双向同步与版本控制方法。通过标准化处理和高级复用技巧,能显著提升PCB设计效率,减少重复工作时间。适用于智能硬件和工业控制等领域的工程师。

weixin_30252709的博客 332

在 SAP 中启用应收/应付“代扣税(Withholding Tax)”功能,本质上是激活并配置“扩展代扣税(Extended Withholding Tax)”模型

摘要:SAP中启用应收/应付代扣税功能需完成3个层级12个核心步骤:1)全局激活公司代码代扣税功能;2)配置代扣税规则、税率和科目,包括定义税种类型、代码、总账科目等;3)在供应商/客户主数据中关联代扣税设置。完成后系统可在发票或付款环节自动计算并过账代扣税,支持多税种并行计算和税率年度调整,最终生成税务报表。常见问题排查需检查公司代码激活状态和主数据配置。(149字)

金牌架构师 836

Android 布局中通用的属性

android:layout_width 宽度设置 android:layout_height 高度设置 android:background 背景图/颜色 android:layout_margin 外边距 android:padding 内边距

m0_63911789的博客 1972

PyTorch 最新安装教程(2021-07-27)

PyTorch 最新安装教程(2021-07-27)前言1. 安装 Anaconda2. 检查显卡,更新驱动3. 创建PyTorch环境4. 配置清华TUNA镜像源5. 安装 PyTorch6. 测试 前言 万事开头难! 这句话又一次被我验证。 记得前不久刚陷入Tensorflow2.0的安装困境,这一次又被PyTorch 搞哭辽。 孩子太难了o(╥﹏╥)o,不过还好最终成功安装,感谢全网资源,感谢大佬们的博客!被我一次一次试了出来。 1. 安装 Anaconda Anaconda 是一个用于科学计算的 P

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 23万+

相对布局管理器RelativeLayout

介绍 相对布局管理器是通过相对定位的方式让组件出现在布局的任何位置的。例如如图 3.14 所示的界面就是采用相对布局管理器来进行布局的,其中先放置组件 A,然后放置组件 B,让其位于组件 A 的下方,再放置组件 C,让其位于组件 A 的下方,并且位于组件 B 的右侧。 在Android中,无论是创建哪一种布局管理器都有两种方法: 一种是在XML布局文件中定义 另一种是使用Java代码来创建 在下面的语法中,<RelativeLayout> 为起始标记,</Re...

Black_Cat_33的博客 783

环保 HJ212协议解析

由于是做环保相关的,有时需要对212协议进行拆包和解包。HJ212协议是一种字符串协议,数据传输通讯包主要由包头、数据段长度、数据段、CRC校验、包尾组成,其中“数据段”内容包括请求编码、系统编码、命令编码、密码、设备唯一标识、总包数、包号、指令参数。请求编码为请求的时间戳,系统编码ST统一规定为22,命令编码CN为该数据包的时间类型,访问密码、设备唯一标识在对接时由平台提供,指令参数为数据内容。通讯协议的数据结构如图4所示。 图4 通讯协议的数据结构 6.1.1通讯包结构组成 名称 类型 长度

ccf19881030的专栏 2万+

C语言设计模式全面解析:从理论到28个实战示例

本文系统介绍了23种经典设计模式在C语言中的实现方法。通过结构体、函数指针等技巧,C语言可以优雅地模拟面向对象特性,实现代码复用与解耦。文章分类详解了创建型、结构型、行为型三大类模式,并提供了28个完整代码示例,包括单例、策略、观察者等核心模式的精简实现。这些模式在嵌入式系统、操作系统内核等场景中广泛应用,如状态机、事件驱动等。学习C语言设计模式的关键在于理解模式意图,掌握函数指针和结构体组合等技巧,并在实际项目中灵活运用。本文为C语言开发者提供了全面的设计模式参考指南。

数字人生 363

Android RelativeLayout布局

1. RelativeLayout类 相对布局(RelativeLayout)将子视图以相对位置显示。默认显示在父视图的左上角。 layout_alignParentTop,父视图的上边 layout_alignParentBottom,父视图的下边 layout_alignParentLeft,父视图的左边 layout_alignParentRight,父视图的右边 设置4个子视图在...

假装你是大灰狼的专栏 3万+

025、空间降噪与时域降噪:噪声抑制与细节保留的平衡艺术

《降噪技术的平衡艺术:空间与时域降噪的协同优化》 本文深入探讨了图像处理中空间降噪与时域降噪的技术原理与工程实践。空间降噪通过像素级处理提升单帧质量,而时域降噪则利用帧间信息增强稳定性。文章揭示了两种方法在实际应用中的矛盾点:过度降噪会导致细节损失,影响后续算法性能。作者结合车载环视系统等实战案例,详细分享了参数调优经验,包括运动自适应策略、边缘保持技巧和嵌入式平台优化方案。特别强调降噪的最终目标应服务于下游算法需求,而非单纯追求图像美观。文章为工程人员提供了从理论到实践的完整指导,展现了降噪技术在效果与性

sundong_81的博客 186

深入了解 Android 中的 RelativeLayout 布局

深入了解 Android 中的 RelativeLayout 布局

一起coding,一起嗨。 1607

深度学习实战12(进阶版)-利用Dewarp实现文本扭曲矫正

大家好,我是微学A1, 我们在生活中会看到一些拍摄扭曲的图片,我们在通过OCR识别的时候,因为扭曲的厉害,而无法识别,我们需要对图片进行处理。

微学AI的博客 3157

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

RelativeLayout相对布局 安卓布局技巧

RelativeLayout相对布局 相对布局 RelativeLayout 允许子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一。它灵活性大很多,当然属性也多,操作难度也大,属性之间产生冲突的的可能性也大,使用相对布局时要多做些测试。

nieweiking的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

android relativelayout 设置子布局之间间隔_六大布局之RelativeLayout

前言上一期我们给大家讲解了FrameLayout的使用,这一期我们为大家讲解一下RelativeLayout(相对布局)的使用,RelativeLayout是Android的六大布局之一,也是我们常用的布局之一,下面我们一起开始学习吧~简介相对布局 RelativeLayout 允许子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一。相对布局和LinearLayout...

weixin_29505163的博客 3245

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

安卓布局三大布局之RelativeLayout

理解:RelativeLayout就是相对布局的意思,相对布局就是相对某个元素为参考点来进行布局元素的摆放。 1.属性含义: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInpare...

Ian22l的博客 819

Android常用布局控件之RelativeLayout

        我们使用LinearLayout和TableLayout可以满足开发应用程序界面基本的要求。但是有时候实现界面的时候不够灵活,我们还可以使用另外一种控件RelativeLayout。RelativeLayout是一种相对布局的控件,这个容器内部的子元素们可以使用彼此之间的相对位置或者和容器间的相对位置来进行定位,类似于网页设计中的CSS。在指定控件的位置时,我们需要指定这个控件与其它控件之间的相对位置关系,比如说与另一个控件的左边对齐,右对齐,位于另一个控件的上方,下方等等。一个控件可以指定

ITCEOjingying的专栏 1万+

安卓开发相对布局(RelativeLayout)的简单使用

2. 使用 `android:layout_alignParentTop`、`android:layout_alignParentBottom`、`android:layout_alignParentLeft`、`android:layout_alignParentRight` 等属性来将视图相对于父布局定位。在这个布局中,`Bottom Button`按钮位于屏幕的底部中间,`Above Button`文本视图位于底部按钮的上方,并且`Left Button`按钮位于文本视图的左侧。

lxl12138的博客 636

Android基础之RelativeLayout布局

同LinererLayout布局的学习一样完成一个登录界面。 效果图与蓝图(手绘)奉上,如下: RelativeLayout的基本属性比较多但是不需要记忆,只要能分的清上下左右就没问题啦。 常用属性如下: 属性 含义 android:gravity 设置该布局容器内各子组件的对齐方式 andro...

qq_36037327的博客 594

Android RelativeLayout 布局

在 Android 的开发中,使用的最频繁的布局必须得是

FOTT 1084

使用RelativeLayout布局Android界面

RelativeLayout是Android中常用的布局方式之一,它可以根据控件之间的相对位置来确定它们在屏幕上的摆放位置。相对布局允许开发者指定一个控件相对于另一个控件的位置,或者相对于父布局的位置。通过掌握RelativeLayout的布局属性和示例演示,开发者能够更加灵活和高效地设计Android界面,满足不同复杂度和需求的界面布局要求。下面通过一个简单的示例来演示如何使用RelativeLayout布局Android界面,假设我们要实现一个简单的登录界面。

微赚淘客系统开发者博客 911

Android 代码动态修改RelativeLayout布局

Android 代码动态修改RelativeLayout布局 前言 有时我们会遇到在xml布局文件中设置好界面后,但是又需要从代码中进行动态布局修改。 之前从网上寻找了好多资料,看到的都是新建一个布局文件 但是我的需求又是从当前布局文件的基础上进行修改。 下面用一个示例大家介绍一个比较简单的办法。 演示 该例子主要是使用RelativeLayout布局,放置两个TextView,点击切换按钮进行切换,永远有一个TextView保持屏幕中间。 activity_main.xml <?xml versi

使命初始的博客 1776

android网格布局居中,Visual Studio 开发安卓之布局-相对布局(RelativeLayout)

控件有很多布局属性,但你会发现有些设置了没效,原来呀,这些就是相对布局用的,你需要在控件的外层套一个 RelativeLayout,这些控件的属性才有效。这些布局属性的意思倒是一下就明白了,只不过属性值的单位不同。带 margin的布局,属性值单位都是尺寸,比如 50dip。带center的布局,属性值都是 true、false,表示在父元素中的居中与否。带 alignParent的布局,...

weixin_42467224的博客 712

Android学习|布局—— RelativeLayout悬浮布局

Android学习|布局—— RelativeLayout悬浮布局一、根据父容器定位二、根据兄弟组件定位三、通用属性 与LinearLayout不同,父级布局包含多个子RelativeLayout布局时,这几个子布局是重叠的,并且最后一个布局位于最上方。类似多个图层的重叠效果。 所以,需要设置相对定位进行位置确定,通过以下属性进行设置。 一、根据父容器定位 layout_alignParentLeft :左对齐 layout_alignParentRight :右对齐 layout_alignPare

weixin_52551903的博客 3420
上一篇: Android 线性布局中常见的冲突属性总结
下一篇: Android 开发中,Intent 和 Bundle 组件间传递数据的几种方式
wu_android
博客等级 码龄10年 94粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值