笔记四:常用布局:相对布局——RelativeLayout
引言在上一节中我们对LinearLayout进行了详细的解析LinearLayout也是我们 用的比较多的一个布局,我们更多的时候更钟情于他的weight(权重)属性等比例划分对屏幕适配还是 帮助蛮大的;但是使用LinearLayout的时候也有一个问题就是当界面比较复杂的时候需要嵌套多层的 LinearLayout,这样就会降低UI Render的效率(渲染速度),而且如果是listview或者GridView上的 item,效率会更低,另外太多层LinearLayout嵌套会占用更多的系统资源,还有可能引发stackoverflow; 但是如果我们使用RelativeLayout的话,可能仅仅需要一层就可以完成了,以父容器或者兄弟组件参考margin padding就可以设置组件的显示位置,是比较方便的!当然,也不是绝对的,具体问题具体分析吧! 总结就是:尽量使用RelativeLayout LinearLayout的weight属性搭配使用吧1.核心属性图2.父容器定位属性示意图3.根据兄弟组件定位恩,先说下什么是兄弟组件吧,所谓的兄弟组件就是处于同一层次容器的组件,如图图中的组件1,2就是兄弟组件了,而组件3与组件1或组件2并不是兄弟组件,所以组件3不能通过 组件1或2来进行定位,比如layout_toleftof 组件1这样是会报错的切记 关于这个兄弟组件定位的最经典例子就是梅花布局了,下面代码实现下:运行效果图实现代码RelativeLayout xmlns:androidhttp://schemas.android.com/apk/res/android xmlns:toolshttp://schemas.android.com/tools android:idid/RelativeLayout1 android:layout_widthmatch_parent android:layout_heightmatch_parent !-- 这个是在容器中央的 -- ImageView android:idid/img1 android:layout_width80dp android:layout_height80dp android:layout_centerInParenttrue android:srcdrawable/pic1/ !-- 在中间图片的左边 -- ImageView android:idid/img2 android:layout_width80dp android:layout_height80dp android:layout_toLeftOfid/img1 android:layout_centerVerticaltrue android:srcdrawable/pic2/ !-- 在中间图片的右边 -- ImageView android:idid/img3 android:layout_width80dp android:layout_height80dp android:layout_toRightOfid/img1 android:layout_centerVerticaltrue android:srcdrawable/pic3/ !-- 在中间图片的上面-- ImageView android:idid/img4 android:layout_width80dp android:layout_height80dp android:layout_aboveid/img1 android:layout_centerHorizontaltrue android:srcdrawable/pic4/ !-- 在中间图片的下面 -- ImageView android:idid/img5 android:layout_width80dp android:layout_height80dp android:layout_belowid/img1 android:layout_centerHorizontaltrue android:srcdrawable/pic5/ /RelativeLayout4.margin与padding的区别初学者对于这两个属性可能会有一点混淆这里区分下 首先margin代表的是偏移,比如marginleft 5dp表示组件离容器左边缘偏移5dp; 而padding代表的则是填充,而填充的对象针对的是组件中的元素,比如TextView中的文字 比如为TextView设置paddingleft “5dp”,则是在组件里的元素的左边填充5dp的空间 margin针对的是容器中的组件而padding针对的是组件中的元素要区分开来 下面通过简单的代码演示两者的区别:比较示例代码如下RelativeLayout xmlns:androidhttp://schemas.android.com/apk/res/android xmlns:toolshttp://schemas.android.com/tools android:layout_widthmatch_parent android:layout_heightmatch_parent android:paddingBottomdimen/activity_vertical_margin android:paddingLeftdimen/activity_horizontal_margin android:paddingRightdimen/activity_horizontal_margin android:paddingTopdimen/activity_vertical_margin tools:context.MainActivity Button android:idid/btn1 android:layout_heightwrap_content android:layout_widthwrap_content android:textButton/ Button android:paddingLeft100dp android:layout_heightwrap_content android:layout_widthwrap_content android:textButton android:layout_toRightOfid/btn1/ Button android:idid/btn2 android:layout_heightwrap_content android:layout_widthwrap_content android:textButton android:layout_alignParentBottomtrue/ Button android:layout_marginLeft100dp android:layout_heightwrap_content android:layout_widthwrap_content android:textButton android:layout_toRightOfid/btn2 android:layout_alignParentBottomtrue/ /RelativeLayout运行效果图比较5.很常用的一点:margin可以设置为负数相信很多朋友都不知道一点吧平时我们设置margin的时候都习惯了是正数的, 其实是可以用负数的,下面写个简单的程序演示下吧,模拟进入软件后,弹出广告 页面的,右上角的cancle按钮的margin则是使用负数的效果图如下:贴出的广告Activity的布局代码吧,当然,如果你对这个有兴趣的话可以下下demo, 因为仅仅是实现效果,所以代码会有些粗糙RelativeLayout xmlns:androidhttp://schemas.android.com/apk/res/android xmlns:toolshttp://schemas.android.com/tools android:layout_widthmatch_parent android:layout_heightmatch_parent tools:contextcom.jay.example.relativelayoutdemo.MainActivity android:background#00CCCCFF ImageView android:idid/imgBack android:layout_width200dp android:layout_height200dp android:layout_centerInParenttrue android:backgrounddrawable/myicon / ImageView android:idid/imgCancle android:layout_width28dp android:layout_height28dp android:layout_alignRightid/imgBack android:layout_alignTopid/imgBack android:backgrounddrawable/cancel android:layout_marginTop-15dp android:layout_marginRight-10dp / /RelativeLayout

相关新闻

如何快速找到并安装最适合的用户脚本:Greasy Fork实用指南

如何快速找到并安装最适合的用户脚本:Greasy Fork实用指南

如何快速找到并安装最适合的用户脚本:Greasy Fork实用指南 【免费下载链接】greasyfork An online repository of user scripts. 项目地址: https://gitcode.com/gh_mirrors/gr/greasyfork Greasy Fork是一个功能强大的在线用户脚本仓库,为用户提…

2026/7/28 18:28:08阅读更多 →
问题解决方案之VC++

问题解决方案之VC++

文|Seraph本文档主要记录VC编程过程中,经常遇到的一些问题,以供大家参考。一、开发多文档形式在初始化时,使其框架以及视图最大化 框架最大化为在应用程序类的初始化函数中添加如下代码:BOOL CMDIAppDemoApp::InitInstance() …

2026/7/28 18:28:08阅读更多 →
Godot Shader特效:自定义Shader实现3D描边(outline)效果

Godot Shader特效:自定义Shader实现3D描边(outline)效果

上篇笔记《Godot Shader特效:3D描边(outline)效果 原理篇》介绍了Godot实现3D描边的原理,该文中是用Godot自带的SpatialShader通过调整参数实现的,由于这个效果在3D游戏中还是很常用的,所以干脆自己写了一个专用Shader,非常简单。把它添加到材…

2026/7/28 18:26:07阅读更多 →
DF BEETLE控制器深度解析:ESP32-S3核心在嵌入式物联网中的极致应用

DF BEETLE控制器深度解析:ESP32-S3核心在嵌入式物联网中的极致应用

1. 项目概述:当“小身材”遇上“大作为”在嵌入式开发和物联网项目里,我们总在寻找一个完美的平衡点:性能要足够强劲,能跑得动复杂的逻辑和算法;体积要足够小巧,能塞进各种奇形怪状的壳子里;接口…

2026/7/29 5:45:34阅读更多 →
芙蓉区标书制作推荐

芙蓉区标书制作推荐

在芙蓉区乃至整个长沙市,选择一家专业且口碑良好的标书制作机构对于企业来说至关重要。湖南光德信息科技有限公司(以下简称“光德”)作为该领域的佼佼者,凭借其卓越的专业能力和一站式服务模式,成为了众多企业的首选合…

2026/7/29 5:45:34阅读更多 →
Python图像处理:Pillow与OpenCV核心差异、实战对比与混合使用指南

Python图像处理:Pillow与OpenCV核心差异、实战对比与混合使用指南

1. 从“打开一张图”说起:为什么需要两个库?做图像处理,第一步永远是“把图读进来”。在Python里,PIL(Pillow)和OpenCV是绕不开的两座大山。新手常问:“我该用哪个?” 老手则会根据场…

2026/7/29 5:45:34阅读更多 →
Kafka消息堆积应该如何处理?

Kafka消息堆积应该如何处理?

消息堆积处理建议 当线上发生严重积压&#xff0c;影响下游业务时&#xff0c;需要根据分区数与消费者数量的关系采取对应策略&#xff1a; 方案 1&#xff1a;消费者数 < 分区数&#xff08;直接扩容 Consumer&#xff09; Kafka 中一个分区同一时间只能被同一个 Group 内的…

2026/7/29 5:45:34阅读更多 →
C++ STL map::erase 安全删除指南:避免迭代器失效与内存泄漏

C++ STL map::erase 安全删除指南:避免迭代器失效与内存泄漏

1. 项目概述&#xff1a;为什么map::erase是个“坑”&#xff1f;如果你用C STL的std::map&#xff08;或者它的兄弟们std::multimap,std::unordered_map&#xff09;写过稍微复杂一点的循环逻辑&#xff0c;特别是需要在遍历过程中删除元素时&#xff0c;十有八九踩过erase的坑…

2026/7/29 5:45:34阅读更多 →
Go语言交叉编译实战:从原理到CI/CD集成,解决多平台部署难题

Go语言交叉编译实战:从原理到CI/CD集成,解决多平台部署难题

1. 从一次部署故障说起&#xff1a;为什么我们需要交叉编译上周&#xff0c;我负责的一个Go服务在客户现场的一台老旧服务器上部署时直接“罢工”了。本地开发环境&#xff08;macOS&#xff09;和测试环境&#xff08;Ubuntu 20.04 x86_64&#xff09;都跑得稳稳当当&#xff…

2026/7/29 5:43:34阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

&#x1f539; 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具&#xff0c;凭借本地离线运行、可视化图形操作和任务自动化三大核心特性&#xff0c;赢得了众多用户的青睐。与普通在线对话AI工具不同&#xff0c;它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接&#xff0c;是用激光束对阀座壳体&#xff08;通常为不锈钢或铝合金&#xff09;进行密封焊接&#xff0c;使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX&#xff1a;三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停&#xff1f;用 interrupt 给它设个“关卡“&#xff01; 在构建复杂的 Agent 系统时&#xff0c;我们经常会遇到这样的场景&#xff1a;Agent 正在执行一个多步骤的任务&#xff0c;比如“下单购买商品”&#xff0c;但执行到一半时&#xff0c;我们…

2026/7/29 0:01:46阅读更多 →
自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

近日&#xff0c;国际专注开放式技术研发的声学品牌Nank南卡&#xff0c;正式官宣实力艺人曾舜晞担任品牌代言人。消息一经发出便轰动全网。为什么耳机品牌不选择流量明星、老牌歌手&#xff1f;而且是选择曾舜晞&#xff1f;让我们一起来探索一下&#xff01;比起短期的流量&a…

2026/7/29 0:01:46阅读更多 →
【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:01:46阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时&#xff0c;发现推理速度只有可怜的 1-2 FPS&#xff0c;而别人的演示视频却能跑到 30 FPS 以上&#xff0c;那么问题很可能不在模型本身&#xff0c;而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后&#xff0c;会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一&#xff1a;为什么你需要了解 Coze 和 Dify&#xff1f;如果你对 AI 应用开发感兴趣&#xff0c;但一看到“大模型”、“智能体”、“工作流”这些词就头疼&#xff0c;觉得门槛太高&#xff0c;那这篇文章就是为你准备的。很多开发者&#xff0c;包括我自己&#…

2026/7/29 4:31:51阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会&#xff1a;配图一直是个让人头疼的问题。2026年&#xff0c;AI生图工具已经非常成熟了&#xff0c;但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1&#xff1a;速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →