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

SolidWorks软件安装管理程序在创建该注册表项时遇到错误: UNKNOWN\Components的解决方案

SolidWorks软件安装管理程序在创建该注册表项时遇到错误: UNKNOWN\Components的解决方案

Q82556499的博客 4169

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

Jetson nano/nx使用麒麟arm版向日葵实现远程控制

Jetson nano/nx使用麒麟arm版向日葵实现远程控制1、安装向日葵软件2、运行Sunlogin Client3、向日葵闪退问题4、重启系统5、重启后黑屏问题 特别提醒: 本博客的第3步切换桌面管理环境到lightdm,存在重启后开机黑屏的风险,我在自己的nano/nx上都没有问题,但帮一个同学的nx配置时,切换到lightdm,重启开机却出现了黑屏,所以执行第3步的话要有心理准备,黑屏解决方法见第5步,特此提醒。

胡乱学点东西 2万+

LuaJit分析(十一)去除string.dump函数

因此即使我们的指令顺序被打乱,通过loadfile系统调用,再通过string.dump调用,可以得到字节码文件,再通过与标准的luajit生成的字节码文件比对,即可找出差异所在。Lua脚本中的string.dump函数用于生成字节码文件,根据对 luajit -b命令的分析可以得出,最终dump出字节码文件都是使用的string.dump函数。同时lj_libdef.h和lj_ffdef.h这两个文件都是自动生成的,在msvcbuild.bat中,使用如下命令生成。

a545958498的博客 1132

Android 布局中通用的属性

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

m0_63911789的博客 1972

fdtd(时域有限差分)仿真

基础入门阶段采用 Step by step 的教学方式带着做具体的案例,在案例中学习 FDTD 应用的。的痛难点,将 FDTD 仿真引入实验当中,通过软件可视化处理有效直观的展示仿真的流程,与实验数。图像传感器,OLED 和液晶,表面计量,表面等离子体,石墨烯,太阳能电池,集成光子组件,超材。料,衍射光学和光子晶体。波,场极化,磁场,周期性结构,半球功率积分等设计解决方案,提供时域有限差分分析函数,时域。子光学传感器、热电子光探测器的光学特性研究、光学微腔宽带吸收器等多个方向的研究方法。

y2715163545的博客 5440

相对布局管理器RelativeLayout

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

Black_Cat_33的博客 783

大疆前端开发面试题及参考答案(4万字长文)

在前端项目中,难点和性能优化的挑战无处不在。比如在处理复杂交互界面时,实现流畅的动画效果和实时反馈就是一大难点。当界面中有大量元素需要同时进行交互和动态更新,像电商平台的商品筛选和排序功能,不仅要保证操作的即时响应,还要确保界面在各种设备和网络环境下的稳定性,这就需要对事件处理、DOM 操作和数据更新机制有深入理解。在性能优化方面,首屏加载速度是常见的难点。当页面包含大量图片、脚本和样式文件时,如何合理地进行资源压缩、合并与缓存,以减少加载时间,是需要精心考虑的。

大模型大数据攻城狮的专栏 1155

Cursor自动生成测试用例

或者把你已有的规则直接复制粘贴到这个文档内(这里我用的是Markdown格式和CSV格式的测试用例生成规则,可以同时生成Markdown和CSV格式的测试用例)。在AI对话框这里,我们可以看到Cursor会逐步来帮我们生成测试用例,先分析识别需求文档,然后生成测试用例,最后会进行质量检查,确保生成的用例符合规范。生成的Markdown格式,可直接导入Xmind,生成思维导图,对应到具体的功能模块看具体的测试点,逻辑会更直观一些。(1)选中规则文档和需求文档:@你的测试用例规则文档@你的需求文档。

十二测试录 2432

Android RelativeLayout布局

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

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

OceanBase迁移平台OMS企业版部署

OceanBase迁移平台OMS企业版部署摘要: 本文档详细介绍了OceanBase迁移平台OMS企业版的部署流程,包含环境准备、OAT部署管理、MetaDB部署等关键步骤。

Sebastien23的博客 521

深入了解 Android 中的 RelativeLayout 布局

深入了解 Android 中的 RelativeLayout 布局

一起coding,一起嗨。 1607

谁在 SAP 系统里说了算:事务码 SCC4 与 SE06 的分工、优先级与实战管控

SAP系统通过SE06和SCC4两套机制控制变更权限:SE06作为系统级"总闸"管理跨Client对象修改,SCC4作为Client级"分闸"控制Client内配置变更。两者存在明确优先级,SE06的全局设置优先于SCC4。当SE06设为"不可修改"时,即使SCC4开放也无法更改跨Client对象。实际项目中需同时检查两处设置,并遵循"最小开放"原则进行变更管理。这种分层设计既满足日常维护需求,又能实现严格的变更管控。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 228

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

RelativeLayout相对布局 安卓布局技巧

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

nieweiking的博客 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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

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

weixin_29505163的博客 3245

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

安卓布局三大布局之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、付费专栏及课程。

余额充值