鸿蒙开发:RelativeContainer 相对布局详解【全套华为认证学习资料分享(考试大纲、培训教材、实验手册等等)】

鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer) ArkUI组件中的RelativeContainer是一个相对定位的容器,可以用来将子组件按照相对位置布局。在RelativeContainer中,每个子组件都可以设置相对于父容器或其他组件的位置和大小。可以通过设置相对位置、偏移量、宽度和高度来实现布局。相对位置可以设置为左侧、上方、右侧和下方。偏移量可以设置为相对位置的偏移值,例如向右偏移10像素或向下偏移5像素。宽度和高度可以设置为相对值或绝对值。使用RelativeContainer时,要注意避免组件重叠或越出容器边界的情况。 阅读详情

前言

在最新版本的 DevEco Studio 中,官方在创建新项目时,默认使用 RelativeContainer 组件作为根布局。这足以证明 RelativeContainer 的重要性。相比其他容器组件,它极大地简化了复杂 UI 布局中的元素对齐问题。

例如,在没有 RelativeContainer 的情况下,我们可能需要嵌套多个容器或使用坐标定位来实现组件的排列。而 RelativeContainer 允许我们通过定义组件间的相对关系,轻松实现复杂布局。


RelativeContainer 基本用法

在 RelativeContainer 中,我们可以通过 alignRules 属性来定义组件的相对位置。以下是一个基本示例:

RelativeContainer() {
    Text("组件1")
        .width(100)
        .height(100)
        .id("view_1")
        .textAlign(TextAlign.Center)
        .backgroundColor(Color.Red);

    Text("组件2")
        .width(100)
        .height(100)
        .id("view_2")
        .textAlign(TextAlign.Center)
        .backgroundColor(Color.Orange)
        .alignRules({
            top: { anchor: "__container__", align: VerticalAlign.Top },
            right: { anchor: "__container__", align: HorizontalAlign.End }
        });
}

在这里,我们创建了 组件1 和 组件2,并通过 alignRules 设置 组件2 位于容器的右上角。


如何使用 ID 声明锚点组件

在 RelativeContainer 中,组件的对齐依赖于锚点组件。为了正确定义锚点,需要给每个组件分配唯一的 id,类似于身份证的作用。例如:

Text("组件1")
    .width(100)
    .height(100)
    .id("view_1")
    .textAlign(TextAlign.Center)
    .backgroundColor(Color.Red);

之后,我们可以通过 alignRules 让其他组件相对于 view_1 进行对齐。


位置对齐规则

RelativeContainer 允许使用 alignRules 来定义组件的相对位置,常见的对齐方式如下:

.alignRules({
    top: { anchor: "__container__", align: VerticalAlign.Top },
    bottom: { anchor: "__container__", align: VerticalAlign.Bottom },
    left: { anchor: "__container__", align: HorizontalAlign.Start },
    right: { anchor: "__container__", align: HorizontalAlign.End }
})

其中,anchor 指定参考组件,可以是 __container__(即父容器)或具体的组件 ID,align 则表示组件的位置:

  • 水平对齐:HorizontalAlign.Start(左)、HorizontalAlign.Center(中)、HorizontalAlign.End(右)。

  • 垂直对齐:VerticalAlign.Top(上)、VerticalAlign.Center(中)、VerticalAlign.Bottom(下)。


居中对齐案例

如果希望某个组件在容器中居中,我们可以这样设置:

@Entry
@Component
struct Index {
    build() {
        RelativeContainer() {
            Text("组件1")
                .width(100)
                .height(100)
                .id("view_1")
                .textAlign(TextAlign.Center)
                .backgroundColor(Color.Red)
                .alignRules({
                    center: { anchor: "__container__", align: VerticalAlign.Center },
                    middle: { anchor: "__container__", align: HorizontalAlign.Center }
                });
        }
    }
}

center 和 middle 让组件水平、垂直方向都居中。


组件相对位置示例

放置在锚点组件上方

Text("组件2")
    .width(100)
    .height(100)
    .id("view_2")
    .textAlign(TextAlign.Center)
    .backgroundColor(Color.Orange)
    .alignRules({
        bottom: { anchor: "view_1", align: VerticalAlign.Top },
        middle: { anchor: "__container__", align: HorizontalAlign.Center }
    });

这里 组件2 放置在 view_1 的上方。

放置在锚点组件下方

Text("组件3")
    .width(100)
    .height(100)
    .id("view_3")
    .textAlign(TextAlign.Center)
    .backgroundColor(Color.Yellow)
    .alignRules({
        top: { anchor: "view_1", align: VerticalAlign.Bottom },
        middle: { anchor: "__container__", align: HorizontalAlign.Center }
    });

类似地,组件3 位于 view_1 的下方。


总结

RelativeContainer 组件提供了一种高效的方式来管理复杂布局中的元素对齐问题。通过 id 声明锚点组件,结合 alignRules 设置组件的相对位置,我们可以轻松实现灵活的 UI 布局。

在实际开发中,掌握 RelativeContainer 的相对摆放规则,可以显著提高开发效率,减少不必要的嵌套和布局代码。希望本文对你有所帮助,快去试试吧!

OpenHarmony实战开发-相对布局 (RelativeContainer) 在应用的开发过程中,经常需要设计复杂界面,此时涉及到多个相同或不同组件之间的嵌套。如果布局组件嵌套深度过深,或者嵌套组件数过多,会带来额外的开销。如果在布局的方式上进行优化,就可以有效的提升性能,减少时间开销。请参考优化布局时间了解RelativeContainer相对于List,在布局时间上的性能提升。 阅读详情

相关推荐

Neurocomputing 投稿指南

Generation Information:选择论文所属领域。上传附件(利益声明,手稿,摘要)审稿人偏好:可以选择期待的审稿人。

qq_41174671的博客 2万+

相对布局(RelativeContainer)

为采用相对布局的容器,支持容器内部的子元素设置相对位置关系。子元素支持指定兄弟元素作为锚点,也支持指定父容器作为锚点,基于锚点做相对位置布局。下图是一个RelativeContainer的概念图,图中的虚线表示位置的依赖关系。图1相对布局示意图子元素并不完全是上图中的依赖关系。比如,Item4可以以Item2为依赖锚点,也可以以RelativeContainer父容器为依赖锚点。

3014

5、OpenClaw(龙虾助手)飞书机器人完整对接指南(2026最新版)

OpenClaw v2026.2.2+ 版本,防火墙内也能正常工作,是目前最稳定、最简单的企业内部AI助手部署方案。

欢迎光临~知1而N的博客 457

第十二讲_ArkUI相对布局(RelativeContainer)

介绍ArkUI相对布局RelativeContainer容器组件

wenqi1992的博客 1402

PCB板质量测试和PCB板

PCB板质量测试和板厂

weixin_51370842的博客 514

CUDA系列-Stream-1

This section describes static aspects of the CUSW_UNIT_STREAM unit’s architecture.和stream相关的其它Unit主要有Channel,Sync,Memmgr A CUDA stream is a software FIFO queue that allows commands like kernel launch and memcpy to be enqueued in it. The enqueued commands

weixin_43360707的博客 734

HarmonyOS鸿蒙学习笔记(25)相对布局 RelativeContainer详细说明

RelativeContainer相对布局使用指南

菜鸟博客 3768

STM32串口控制LED灯的亮灭

STM32中的串口控制LED灯的亮灭,分为两种方式,一种是直接发送数字0和1来控制灯的亮灭,另一种是通过发送字符串来控制。 我所使用的开发板主控芯片是STM32F401RET6,主频84MHz, 首先要进行串口的初始化: /* 函数功能:串口的初始化 函数名:Usart_Init 返回值:无 参数:u32 brr 备注: USART1_TXD->PA9 USART1_RXD->PA10 */ void Usart_Init(u32 brr) { float div; u16 div

博客 2万+

【愚公系列】2023年12月 HarmonyOS教学课程 008-ArkUI组件(RelativeContainer)

ArkUI组件中的RelativeContainer是一个相对定位的容器,可以用来将子组件按照相对位置布局。在RelativeContainer中,每个子组件都可以设置相对于父容器或其他组件的位置和大小。可以通过设置相对位置、偏移量、宽度和高度来实现布局。相对位置可以设置为左侧、上方、右侧和下方。偏移量可以设置为相对位置的偏移值,例如向右偏移10像素或向下偏移5像素。宽度和高度可以设置为相对值或绝对值。使用RelativeContainer时,要注意避免组件重叠或越出容器边界的情况。

愚公智库 6万+

使用 PLS 回归进行近红外光谱的异常值检测

在光谱数据中,并非每个数据点都是有效的,因此,在构建模型时找到与大部分数据不符合的数据点是一种必要的操作。这些数据我们称之为。在这篇文章中,我们将使用PLS回归进行红外光谱数据的异常值检测。

qq_44204759的博客 1422

超临界二氧化碳再热再压缩布雷顿循环建模与先进控制

超临界二氧化碳布雷顿循环建模与先进控制研究 本文研究了超临界二氧化碳再热再压缩布雷顿循环系统的建模与控制。通过MATLAB/Simscape构建了包含压缩机、透平、回热器等关键组件的动态模型,并设计了基于模型预测控制(MPC)和自抗扰控制(ADRC)的多层控制策略。系统采用转速控制的压缩机、阀门开度控制的透平,以及可变热源加热器,实现了全动态分析。研究结果表明,MPC与ADRC混合控制方案相较于传统PID控制,功率超调降低至0.9%,效率波动控制在±0.08%,扰动恢复时间缩短至12秒。

AI的内部世界的博客 340

【鸿蒙(HarmonyOS)】ArkUI构建布局(线性布局Row/Column、层叠布局Stack、弹性布局Flex、相对布局RelativeContainer)

描述:构建布局是UI界面开发的基础,如何使界面看起来优雅简洁?编辑程序时不迷路?都离不开一个好的布局思路和习惯。 难度:简单 任务: 1、认识线性布局Row/Column、层叠布局Stack、弹性布局Flex、相对布局RelativeContainer。 2、拿生活中的一些发布的软件进行练手。

守夜人 5356

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

鸿蒙容器组件 RelativeContainer 全解析:灵活定位的布局神器

图标与文本的精细化对齐场景动态增减元素的自适应布局多端设备的响应式定位需求掌握其核心逻辑后,开发者可告别多层 Column/Row 嵌套,用更简洁的代码实现更灵活的布局。建议从容器边界对齐开始实践,逐步掌握组件间相对定位,结合Alignment枚举和$id引用机制,释放 RelativeContainer 的全部潜力,打造智能优雅的交互界面。

hqy1989的博客 1312

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

HarmonyOS ArkUI容器类组件-相对布局容器(RelativeContainer)

ArkUI 开发框架提供了 RelativeContainer 组件实现相对布局的能力,该布局适用于复杂场景下多元素对齐的情况。该组件可以包含多个子组件,本节笔者简单介绍一下 RelativeContainer 的使用。

m0_71263309的博客 926

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

鸿蒙5.0进阶开发:UI开发-构建布局(相对布局 (RelativeContainer))

在应用的开发过程中,经常需要设计复杂界面,此时涉及到多个相同或不同组件之间的嵌套。

AyomQAQ的博客 915

鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)_arkui实现相对定位

ArkUI组件中的RelativeContainer是一个相对定位的容器,可以用来将子组件按照相对位置布局。在RelativeContainer中,每个子组件都可以设置相对于父容器或其他组件的位置和大小。可以通过设置相对位置、偏移量、宽度和高度来实现布局。相对位置可以设置为左侧、上方、右侧和下方。偏移量可以设置为相对位置的偏移值,例如向右偏移10像素或向下偏移5像素。宽度和高度可以设置为相对值或绝对值。使用RelativeContainer时,要注意避免组件重叠或越出容器边界的情况。

2401_84182020的博客 1288

HarmonyOS相对布局 (RelativeContainer) 基本概念

是一种基于相对位置的布局容器,允许组件通过锚点关系(如对齐、居中等)动态调整位置,适合复杂界面设计。在垂直方向上,可以设置组件边界与锚点对齐,具体包括顶部(top)、居中(center)和底部(bottom)。为了准确定义锚点,RelativeContainer的子元素必须拥有唯一的组件标识(id),用于指定锚点信息。在水平方向上,可以按照起始(left)、居中(middle)或尾端(right)的组件边界与锚点对齐。对齐方式:通过对齐方式,设置当前元素是基于锚点的上中下对齐,还是基于锚点的左中右对齐。

Y_soon_start的博客 902

鸿蒙开发---布局-相对布局 (RelativeContainer)的自己理解和解释

Entry@Componentbuild() {})在这个一个代码中相对布局(RelativeContainer)下的 Text( )(文本组件下)使用了相对布局({})​​//语法:其语法为:.alignRules({ location:{ anchor: '__container__', align:Align positions} })({定位锚点位置设置:anchor(锚):'所需要的相对那个组件定位的ID名称',

2201_75775965的博客 1023

鸿蒙开发0基础【相对布局 (RelativeContainer)】ArkUI

在应用的开发过程中,经常需要设计复杂界面,此时涉及到多个相同或不同组件之间的嵌套。如果布局组件嵌套深度过深,或者嵌套组件数过多,会带来额外的开销。如果在布局的方式上进行优化,就可以有效的提升性能,减少时间开销。

zhenggaoxiao232的博客 1189

华为VXLAN OVER EVPN(EBGP)

本文基于 eNSP Pro 模拟器,完整复现 Spine-Leaf 架构下 VXLAN over EVPN 的二层互通实验。实验目标是:通过 EBGP 在 Spine 与 Leaf 之间建立 Underlay 路由,再借助 BGP EVPN 承载 VXLAN 隧道,最终实现跨 Leaf 的同一子网二层互通,并验证头端复制(Head-End Replication)方式的 BUM 流量转发。

243

华为昇腾910B4(A2)服务器环境搭建笔记

Qwen3.5 默认支持思考模式。首次测试建议关闭思考模式,更容易判断模型是否成功回答。我建议把模型统一存放在宿主机的 /data/models 目录中。这样即使删除 Docker 容器,模型文件也不会丢失。这里先进行单卡测试,确保容器能正确调用 NPU。安装ModelScope 用于下载模型。继续在刚才的容器内部执行。

guoqingru0311的博客 273

手头只有华为配置,新设备是华三?粘进来自动翻

手头有华为配置,新设备是华三?用「跨厂商转换」工具,粘贴配置后自动识别源厂商,一键转成目标厂商语法,支持华为、华三、锐捷、迈普、思科等主流设备。精准处理VLAN、access/trunk口、SVI IP、VTY/SSH等差异,避免手动修改时漏改“拼写级”错误。转换后需人工核对核心项与独有特性,建议结合备份、比对与模拟验证,确保安全上机。

qq_42614669的博客 378

华为云云硬盘 EVS:挂载、初始化与快照回滚,一块数据盘的完整生命周期

一块云硬盘的生命周期是「买 → 挂 → 初始化 → 用 → 卸 → 再挂」。Windows 靠磁盘管理初始化、靠脱机保证能换机;Linux 靠。

xbzb的博客 698

IPD咨询洞察:华为项目文化:让胜利成为一种信仰

华为“让胜利成为信仰”的本质是使命必达,落地为五项内核:开放创新、勇于担当、团队协同、契约精神、善思善结。使命必达不能停留在墙面标语,须转化为可落地、可考核的行为准则,胜利才能真正成为团队习惯。

weixin_58096508的博客 88
上一篇: TiDB 企业级升级全解读:平凯数据库的技术突破与行业应用
下一篇: 2025年华为安全HCIE为何火爆?数通还有未来吗?
IT程序媛-桃子
博客等级 码龄2年 757粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值