HarmonyOS应用开发学习笔记 UI布局学习 相对布局 (RelativeContainer)

本文主要是介绍HarmonyOS应用开发学习笔记 UI布局学习 相对布局 (RelativeContainer),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

UI布局学习 之 相对布局 (RelativeContainer)

官方文档

一、关键字 RelativeContainer, alignRules(适配规则)

			Text('Text02').alignRules({left: { anchor: 'text01', align: HorizontalAlign.Start },top: { anchor: 'text01', align: VerticalAlign.Bottom },bottom: { anchor: 'text01', align: VerticalAlign.Bottom },right: { anchor: 'text01', align: HorizontalAlign.End }})
  • 其实很好理解 :alignRules{}里面表示:
  • 元素四个方向(left,top,bottom,right),
  • 相对于谁(anchor:‘id’)
  • 的什么位置(HorizontalAlign.Start ,VerticalAlign.Bottom ,VerticalAlign.Bottom, HorizontalAlign.End )

RelativeContainer为采用相对布局的容器,支持容器内部的子元素设置相对位置关系。子元素支持指定兄弟元素作为锚点,也支持指定父容器作为锚点,基于锚点做相对位置布局。下图是一个RelativeContainer的概念图,图中的虚线表示位置的依赖关系。

在这里插入图片描述
子元素并不完全是上图中的依赖关系。比如,Item4可以以Item2为依赖锚点,也可以以RelativeContainer父容器为依赖锚点。

二、关键:锚点(相对于谁)、对齐方式

项目描述
锚点相对于谁,通过锚点设置当前元素基于哪个元素确定位置。
对齐方式通过对齐方式,设置当前元素是基于锚点的上中下对齐,还是基于锚点的左中右对齐。
RelativeContainer IDRelativeContainer父组件为锚点,__container__代表父容器的id
.alignRules设置对齐方式的关键方法(left、middle、right,top、center、bottom)

为了明确定义锚点,必须为RelativeContainer及其子元素设置ID

  • 在水平方向上,可以设置left、middle、right的锚点。
  • 竖直方向上,可以设置top、center、bottom的锚点。

RelativeContainer父组件为锚点,__container__代表父容器的id

关键点:

  • 1、弄清楚相对于谁,(id是关键)
  • 2、对齐方式的设置(eft、middle、right,top、center、bottom)

1、元素相对于父组件 示例:

在这里插入图片描述

RelativeContainer() {Text('Text01').alignRules({top: { anchor: '__container__', align: VerticalAlign.Top },left: { anchor: '__container__', align: HorizontalAlign.Start }}).width(100).height(100).backgroundColor(Color.Red).id('text01')Text('Text02').textAlign(TextAlign.Center).alignRules({top: { anchor: '__container__', align: VerticalAlign.Top },right: { anchor: '__container__', align: HorizontalAlign.End }}).width(100).height(100).backgroundColor(Color.Green).id('text02')}.backgroundColor(Color.Yellow).width('100%').height(500)

2、子元素之间相对布局 以子元素为参照物

  • text02相对于text01
    在这里插入图片描述
    RelativeContainer() {Text('Text01').alignRules({//相对于父容器,顶部(top)和左边(start)位置top: { anchor: '__container__', align: VerticalAlign.Top },left: { anchor: '__container__', align: HorizontalAlign.Start }}).width(100).height(100).backgroundColor(Color.Red).id('text01')Text('Text02').textAlign(TextAlign.Center).alignRules({//相对于text01(id为('text01')的元素),顶部(top)和id('text01')的底部(Bottom)对齐top: { anchor: 'text01', align: VerticalAlign.Bottom },left: { anchor: 'text01', align: HorizontalAlign.Start } //顶部(top)和id('text01')的底部(Bottom)对齐}).margin({ top: 20 }).width(100).height(100).backgroundColor(Color.Green).id('text02')}.backgroundColor(Color.Yellow).width('100%').height(500)

三、设置相对于锚点的对齐位置

项目描述
水平方向可以设置为HorizontalAlign.Start、HorizontalAlign.Center、HorizontalAlign.End。
竖直方向可以设置为HorizontalAlign.Start、HorizontalAlign.Center、HorizontalAlign.End。

在这里插入图片描述

这篇关于HarmonyOS应用开发学习笔记 UI布局学习 相对布局 (RelativeContainer)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/593074

相关文章

Agent开发核心技术解析以及现代Agent架构设计

《Agent开发核心技术解析以及现代Agent架构设计》在人工智能领域,Agent并非一个全新的概念,但在大模型时代,它被赋予了全新的生命力,简单来说,Agent是一个能够自主感知环境、理解任务、制定... 目录一、回归本源:到底什么是Agent?二、核心链路拆解:Agent的"大脑"与"四肢"1. 规划模

精准寻车+鸿蒙有礼特别版均已上线! 华为鸿蒙HarmonyOS 6负一屏新升级

《精准寻车+鸿蒙有礼特别版均已上线!华为鸿蒙HarmonyOS6负一屏新升级》不少朋友升级华为鸿蒙HarmonyOS6后,发现华为负一屏此次也新增了精准寻车功能,还为过往鸿蒙5.1及以上用户再度... 最近科技圈热议话题当属华为全新发布的Mate 80系列,这次不仅有全金属机身,第二代红枫影像和全新麒麟新品

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

Nginx内置变量应用场景分析

《Nginx内置变量应用场景分析》Nginx内置变量速查表,涵盖请求URI、客户端信息、服务器信息、文件路径、响应与性能等类别,这篇文章给大家介绍Nginx内置变量应用场景分析,感兴趣的朋友跟随小编一... 目录1. Nginx 内置变量速查表2. 核心变量详解与应用场景3. 实际应用举例4. 注意事项Ng

Java中的随机数生成案例从范围字符串到动态区间应用

《Java中的随机数生成案例从范围字符串到动态区间应用》本文介绍了在Java中生成随机数的多种方法,并通过两个案例解析如何根据业务需求生成特定范围的随机数,本文通过两个实际案例详细介绍如何在java中... 目录Java中的随机数生成:从范围字符串到动态区间应用引言目录1. Java中的随机数生成基础基本随

Qt实现删除布局与布局切换功能

《Qt实现删除布局与布局切换功能》在Qt应用开发中,动态管理布局是一个常见需求,比如根据用户操作动态删除某个布局,或在不同布局间进行切换,本文将详细介绍如何实现这些功能,并通过完整示例展示具体操作,需... 目录一、Qt动态删除布局1. 布局删除的注意事项2. 动态删除布局的实现步骤示例:删除vboxLay

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个