RelativeLayout

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

序

RelativeLayout:A Layout where the positions of the children can be described in relation to each other or to the parent.

相对布局:子控件的位置可以相对于其他子控件或者父控件描述的布局

当我们创建一个新的工程时,系统默认给我们创建的一个布局就是RelativeLayout(相对布局),这足以说明相对布局的重要性。相对布局和LinearLayout,FrameLayout相比较来说,性能不是最好的,但是他可以大大减少布局的结构层次,从而达到优化布局的效果。

 

上图的布局是个典型的相对布局,如果你用线性布局的话,一个布局估计是做不到的,这时候你需要线性布局嵌套线性布局,这样就增加了布局的层次,从而消耗了性能。

既然是相对布局,那么它又相对于什么布局呢?当然只能是它的父控件或其他子控件布局。


1.相对于父布局

android:layout_centerVertical="true"//设置是否相对于父布局垂直居中

android:layout_centerHorizontal="true"//设置是否相对于父布局水平居中

android:layout_centerInParent="true"//设置是否相对于父布局居中(水平和垂直都有)

android:layout_alignParentTop="true"//设置是否紧贴父布局的顶部,即设置在父布局的顶部

android:layout_alignParentBottom="true"//设置是否紧贴父布局的底部,即设置在父布局的底部

android:layout_alignParentRight="true"//设置是否紧贴父布局的右侧,即设置在父布局的右侧

android:layout_alignParentLeft="true"//设置是否紧贴父布局的左侧,即设置在父布局的左侧

适配Api17的RTL布局:这里有RTL布局的详细说明

android:layout_alignParentStart="true"//设置是否紧贴父布局开始的位置

android:layout_alignParentEnd="true"//设置是否紧贴父布局结束的位置


2.相对于其他的子控件

android:layout_above="@+id/xxx"//位于某个id的控件的上方

android:layout_below="@+id/xxx"//位于某个id的控件的下方

android:layout_toLeftOf="@+id/xxx"//位于某个id的控件的左侧

android:layout_toRightOf="@+id/xxx"//位于某个id的控件的右侧

android:layout_alignTop="@+id/xxx"//设置和某个id的控件的上方位于一条线上

android:layout_alignBottom="@+id/xxx"//设置和某个id的控件的下方位于一条线上

android:layout_alignLeft="@+id/xxx"//设置和某个id的控件的左侧位于一条线上

android:layout_alignRight="@+id/xxx"//设置和某个id的控件的右侧位于一条线上

适配Api17的RTL布局:

android:layout_toStartOf="@+id/xxx"//设置位于某个id控件的开始位置

android:layout_toEndOf="@+id/xxx"//设置位于某个id控件的结束位置

android:layout_alignStart="@+id/xxx"//设置和某个id的控件的开始位置位于一条线上

android:layout_alignEnd="@+id/xxx" //设置和某个id的控件的结束位置位于一条线上


3.其他属性

android:layout_alignWithParentIfMissing="true"// 如果找不到其他子控件,就相对于父控件布局

是不是觉得每个子控件都要设置属性很麻烦?

在RelativeLayout中也有:

android:gravity="center_horizontal|bottom"//设置内部子控件的显示位置,居中,上下左右都可以

当然它还提供了一个方法,如果你不想某个子控件不受RelativeLayout的控制:

android:ignoreGravity="@id/xxx"//传入子控件的id

RelativeLayout源码解析 为什么学习 一直对RelativeLayout如何把xml中的属性转换成子view的真实坐标比较感兴趣,并且网上对RelativeLayout这部分资料比较少,希望将自己对RelativeLayout这部分源码理解写出来,跟大家分享一下。什么是RelativeLayout 中文名叫相对布局,可以指定内部子view之间的相互关系,从而可以绘制出更精确的UI 但是相比于LinearLayout,R 阅读详情

相关推荐

Android 布局系列(三):RelativeLayout 使用指南

通过本次示例,我们可以看到,虽然使用 RelativeLayout 来实现一个“上下左右”布局并不难,但要达到精确的对齐效果,我们需要理解并熟练运用 RelativeLayout 中的各种布局属性。掌握这些属性的使用,能够让我们在设计布局时更加灵活和高效。当然,随着布局需求的复杂化,灵活使用这些属性是提高开发效率的关键。只要多加练习,并根据实际需求进行调整,你将能快速实现各种复杂的布局效果。布局的设计不仅仅是对技术的掌握,更是对细节的关注。

weixin_39339407的博客 2914

RelativeLayout控件居中详细解析(可能是最完美的方法)

在RelativeLayout中设置控件全部居中,需要注意在父布局的一些细节设置即可,现在给出完美的解决方法,先看实例:<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="m

OAOAAce的专栏 5万+

Win11网络卡顿?用Wireshark抓包5分钟定位问题(保姆级实战)

本文详细介绍了如何使用Wireshark在Win11系统中快速定位网络卡顿问题。通过5分钟抓包分析,作者成功发现TCP重传率高达37%的罪魁祸首,并提供了从准备工作到实战分析的保姆级教程,帮助用户解决游戏卡顿、视频会议延迟等常见网络问题。

weixin_28839629的博客 306

RelativeLayout如何在代码中设置它的子控件居中

要将RelativeLayout中的子控件居中,可以使用相应的布局参数来设置子控件的位置。需要注意的是,以上示例假设你已经在XML布局文件中定义了一个id为。如果没有定义,请根据实际情况修改代码中的相关部分。最后,将设置好的布局参数应用到子控件上,使用子控件的。规则添加到布局参数中,以实现子控件的居中效果。的RelativeLayout和一个id为。首先,获取要居中的子控件的引用,可以使用。方法或者动态创建控件的方式获取到。对象,用于设置子控件的布局参数。

weixin_41208172的博客 1583

Ubuntu+Dify实战:如何让大模型知识库完美支持图片召回(附避坑指南)

本文详细介绍了在Ubuntu系统上部署Dify平台,并实现大模型知识库图片召回功能的完整实战方案。通过解析Dify处理图片的底层逻辑,重点讲解了配置Nginx代理服务器将本地图片路径转换为可公开访问URL的核心工程步骤,并提供了文档预处理、环境变量配置以及父子分段策略等高级技巧,帮助开发者构建图文并茂的AI应用,有效提升知识库的丰富性和用户体验。

c7d8e的博客 445

MID360+fastlio功能笔记

前言。

qq_35598561的博客 5297

RelativeLayout常用属性介绍-----开发日记(一)

第一类:属性值为true或false     android:layout_centerHrizontal 水平居中     android:layout_centerVertical 垂直居中     android:layout_centerInparent 相对于父元素完全居中     android:layout_alignParentBottom 贴紧父元素的下边缘     a

pkigavin的专栏 1139

从Simulink仿真到DSP28335真机部署:PID闭环控制快速移植指南

本文详细介绍了如何将Simulink中的PID闭环控制算法快速移植到DSP28335嵌入式平台。通过模型与代码映射、浮点与定点数选择、定时器中断配置、物理输出实现以及调试技巧五个关键步骤,帮助工程师高效完成从仿真到真机部署的全过程,特别适合需要实现精确控制的嵌入式开发者。

weixin_42521843的博客 363

RelativeLayout布局

RelativeLayout布局是相对布局,如果RelativeLayout中再包含两个RelativeLayout,不会像LinearLayout一样,宽高一样的话会重叠在一起 将红色布局放到右上角 常见属性 根据父容器定位 layout_alignParentLeft 左对齐 layout_alignParentRight 右对齐 layout_alignParentTop 顶部对齐 layout_alignParentBottom 底部对齐 layout_centerHorizontal 水平居中

qq_44610809的博客 4748

uniapp(安卓 | 苹果) - 最新详细实现App打包发布教程,uni-app苹果IOS软件应用上架App Store软件商店,uni-app打包发布安卓Android软件到各大应用商店(详细教程

uni-app,安卓android,苹果ios,uniapp App软件,Uniapp上架发布应用,打包构建,apk、app软件,应用商店,应用市场,app store,uni-app安卓苹果app上架应用商店,app应用从创建到上架_uniapp打包app的流程和上架,uniapp打包上架ios Appstore 最全流程,苹果应用商店上架教程,uniapp生成的app怎么上架到iphone的app store,uni-app打包到上架Android , ios完整详细流程,审核一直不通过,软件商店审核失

✅ 精选推荐文章 1万+

180.在 Vue3 中使用 OpenLayers 实现多个多边形的绘制、编辑、删除与清空

【摘要】本文介绍如何在Vue3+TypeScript环境下使用OpenLayers实现多边形地图交互功能。通过Composition API封装核心逻辑,实现了多边形绘制、编辑、删除及清空等操作。关键技术包括:使用VectorLayer管理图形数据,Draw/Modify/Select交互控制,以及通过ref()管理交互状态。文中提供了完整代码示例,并解决了交互对象叠加问题,为开发GIS应用提供了基础模块。该方案支持扩展为数据库存储、后端交互等高级功能。

小彭的博客 769

android relativelayout属性总结

------------指定偏移量 1.android:paddingleft(paddingright/paddingtop/paddingbottom):控件内部内容(如文本距离该控件的边距); 2.android:paddingstart(paddingend):左右对齐时使用。左对齐时:paddingstart对应paddingleft;paddingend对应paddingrig

kimifdw的专栏 5473

AMBA-CHI协议详解(一)

CHI体系结构是一种可扩展、一致性的集线器接口和片上互联,可由多个组件使用。CHI体系结构允许根据性能、功耗和面积系统要求灵活地进行组件连接拓扑。硬件一致性使系统组件能够共享内存,而无需维护软件缓存以保持一致性。如果两个组件对同一存储器位置的写入可被所有组件以相同的顺序观察到,则存储器区域是一致的。

Crazzy_M的博客 1万+

Android Layout 之 RelativeLayout

Android Layout 之 RelativeLayout  使用 AbsoluteLayout 可以直接指定其子 View  的绝对位置, 这种布局方式虽然简单,但是不够灵活。比如在一个程序中,按钮2 位于 按钮1 的下方且和 按钮1 左对齐,我们可以使用指定两个按钮的绝对位置的方式布局,但是当布局完成后,由于某些原因,这两个按钮需要相左平移一些距离以便在父 View 右边留出一些空白区

Android_G的专栏 1万+

Sigrity Power DC Package Multi-Resistor Compact ET Model Extraction模式提取封装基板电热阻模型

DIE(定义DIE的参数):material设置为silicon(硅),Attach material(贴片的材料,设置为Die Attach),Attach thickness(贴片的材料的厚度,厚度设置为0.001mm,点击ok。Cap为覆盖材料,Material定义材料类型,thickness定义厚度,length和width定义长宽,Adhesive Material为胶的材料,Adhesive Material为胶的厚度,本例不定义,跳过即可。

weixin_54787054的博客 437

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

RelativeLayout在flutter体现

android flutter FrameLayout/RelativeLayout ---------------------------------- Stack <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:an...

涂文远的博客 1391

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Android常用布局控件之RelativeLayout

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

ITCEOjingying的专栏 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

RelativeLayout(相对布局)

RelativeLayout 教程摘要 RelativeLayout 是 Android 中通过相对定位排列子 View 的布局方式,支持基于兄弟 View 或父容器的位置关系(如居中对齐、上下排列等)。它减少了布局嵌套但性能低于 ConstraintLayout,Google 推荐后者替代。核心属性包括 layout_below、layout_alignParentTop 等,需为 View 设置 ID 以便引用。教程提供了 XML 和代码两种实现方式,示例展示计数器界面布局,并强调动态代码中通过 add

m0_57545130的博客 1376

‘RelativeLayout’

本讲内容:常用Layout介绍: AbsoluteLayout和RelativeLayout 点此下载:Android学习指南第六讲源代码 3、绝对布局 AbsoluteLayout 绝对定位AbsoluteLayout,又可以叫做坐标布局,可以直接指定子元素的绝对位置,这种布局简单直接,直观性强,但是由于手机屏幕尺寸差别比较大,使用绝对定位的适应性会比较差。 下面我们举一

zhaohc_nj的专栏 896

android relativelayout 底部,Android RelativeLayout 属性

// 相对于给定ID控件Android:layout_above 将该控件的底部置于给定ID的控件之上;android:layout_below 将该控件的底部置于给定ID的控件之下;android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐;android:layout_toRightOf 将该控件的左边缘与给定ID的控件右边缘对齐;android:lay...

weixin_30899023的博客 752

RelativeLayout 原理浅析

本文基于api level 26 的代码,简单描述一下 RelativeLayout 的内部工作原理。

黄金夫的博客 1323

动态改变RelativeLayout中元素在RelativeLayout中的布局

<br />     此方法不是很直接,不过没有发现更简单的方法。<br />     首先在JAVA程序中取到RelativeLayout中要改变其布局的元素,比如一个LinearLayout 叫做view1。 然后new一个RelativeLayout.LayoutParams。 构造器的参数为view1的长和宽。 RelativeLayout.LayoutParams的addRule方法,加入要改成的布局,比如RelativeLayout.ALIGN_PARENT_TOP。 最后view1.setLa

8575

relativelayout中心对齐_Android中关于相对布局RelativeLayout的技巧汇总

前言首先大家可以思考下如何用RelativeLayout而且没有嵌套生成下面的布局,如果你会的话就不用看后面的了。分析这个布局的特点是按钮3底部对齐,按钮2在按钮3的上面,文本框水平充满剩余的区域,按钮1顶部对齐,列表框垂直充满剩余的区域。下面我们会拆分为下面两个子问题:水平充满剩余区域的问题水平方向上有两个组件,一个组件宽度为wrap_content(或者固定宽度),另外一个组件的需要充满剩余的...

weixin_31618799的博客 1363

RelativeLayout之Button摆放位置

RelativeLayout又称为相对布局,也是一种非常常用的布局。和LinearLayout的排列规则不同,RelativeLayout显得更随意一些。它可以通过相对定位的方式让控件出现在布局的任何位置。 1.相对位置,相对父控件:左上,右上,居中,左下,右下 <?xml version="1.0" encoding="utf-8"?> <Button android...

qq_24883353的博客 2457

android 继承relativelayout,Android开发中RelativeLayout相对布局

Android开发中RelativeLayout相对布局RelativeLayout布局是Android界面布局中应用最广也最强大的一种布局,其不只十分灵活,能够解决开发中各类界面布局需求,同时也很方便了解决了多屏幕尺寸的适配问题。在iOS开发中,Autolayout技术老是被赞不绝口,RelativeLayout布局就是Andriod系统中的Autolayout,其又被称为相对布局。java所谓...

weixin_39936558的博客 583
上一篇: Android点九图注意事项
下一篇: Android禁用横竖屏切换那些事
Client_Block
博客等级 码龄11年 33粉丝 61原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值