鸿蒙开发: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,在布局时间上的性能提升。 阅读详情

相关推荐

Python实现ARIMA模型

以下是一个使用Python实现ARIMA(自回归移动平均模型)的简单示例代码。在运行代码之前,请确保已经安装了pandasnumpy和库。ARIMAorder(2,0,2)p = 2d = 0q = 2forecastmatplotlib在实际应用中,你需要将模拟数据替换为真实的时间序列数据,并且通过合适的方法(如信息准则等)来确定pdq的最佳值。除了auto_arima在使用pmdarima。

huanghm88的专栏 1736

相对布局(RelativeContainer)

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

3014

网口电路/Bob Smith电路思考及测试

上表中的数据为实际数据,此时可以看出在结果比对中,分别为以上三种时,结果基本上变化很小,且网口一致性指标都是测试通过的,而且如果真的Bob Smith电路是有阻抗变换的作用的,我的以上操作(保留阻容、去掉电阻、去掉电阻电容)完全破环了阻抗平衡,但是实际上对网口一致性指标没有多大的影响,这是我认为该电路不具有阻抗变换的第一个原因。网口变压器的共模电感,就是电流型中的T10、T14、T17、T18,我们知道辐射超标一般都是共模电流导致的,而共模电感就是来消耗差分线路中的共模电流的,而对差模电流基本无影响。

domen_pan的博客 6054

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

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

wenqi1992的博客 1402

深入解析EtherCAT通讯DS402协议下的伺服电机控制模式选择与配置

本文深入解析了EtherCAT通讯DS402协议下的伺服电机控制模式选择与配置,详细介绍了六种核心控制模式(如PPM、CSP、CSV、CST)的应用场景及实战技巧。通过EtherCAT和DS402协议的高效配合,实现工业自动化中伺服电机的精准控制,提升设备性能与稳定性。

h0i1j2k3l的博客 1173

华硕电脑Win10改Win7系统:BIOS设置详解

通过上述步骤,华硕电脑用户可以将系统从Windows 10更改为Windows 7。虽然这个过程可能涉及一些技术细节和潜在的风险(如数据丢失和驱动不兼容),但只要按照指南仔细操作并做好准备工作,大多数用户应该能够成功完成系统回滚。请记住,在进行任何系统更改之前都要备份重要数据,并确保已了解所有潜在的风险和限制。希望本文能够帮助到需要回滚到Windows 7的华硕电脑用户!

nntxthml的博客 2260

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

RelativeContainer相对布局使用指南

菜鸟博客 3768

node运行项目-Network: unavailable-没有ip地址

vscode运行vue项目后发现Network: unavailable 是什么情况呢?可能有一下三种情况:1.多个网卡原因:打开网络共享中心,把多余的网络禁用掉,只留一个2.在中配置host及public3.系统环境变量问题。

JackieDYH的博客 7537

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

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

愚公智库 6万+

打通ZYNQ的任督二脉:AXI_FIFO数据交互全解析

FIFO(First In First Out,先进先出)是一种经典的数据缓冲结构,就像排队买票一样,先来的人先得到服务。时钟域交叉(CDC):连接不同时钟频率的模块数据缓冲:平衡生产者和消费者的速度差异流量控制:防止数据丢失或溢出input clk,// 输入AXI4-Stream接口(从PS到PL)// 输出AXI4-Stream接口(从PL到PS)// 状态指示信号// 定义状态机状态// 数据缓存// 8个深度的缓存// 流水线处理寄存器。

QQ_778132974的博客 304

神经进化实践:用遗传算法替代反向传播优化神经网络

神经进化用来定义应用于深度学习的特定优化模式。在本节中,我们通过遗传算法优化简单深度学习网络的权重/参数,替换在误差反向传播训练过程中的所用优化器。

盼小辉丶的博客 3580

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

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

守夜人 5356

Python进阶005:修改Jupyter Notebook的工作路径

1、Jupyter Notebook简介 2、修改Jupyter Notebook的工作路径 如下三个步骤: 一、安装notebook 在CMD命令行中输入: pip install notebook 二、启动notebook jupyter notebook 启动后发现是在你的用户目录下,如下图所示,但是该目录下有很多的其他文件或文件夹,因此我想把这个环境切换到我单门创建的一个文件夹中。 三、创建notebook的配置文件 在CMD命令行中执行: jupyter notebook --genera

若北辰 1384

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

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

hqy1989的博客 1312

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

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

m0_71263309的博客 926

VB摄像头监控

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

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

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

AyomQAQ的博客 915

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

鸿蒙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、付费专栏及课程。

余额充值