当前位置: 首页 > news >正文

鸿蒙UI开发与部分布局

UI开发

1. 布局概述

1.1 开发流程

1.先确定开发流程 -> 2.分析页面元素构成 ->3.选用合适的布局容器组件

image-20241121081642623

1.3 布局元素组成:盒模型

image-20241121082444491

image-20241121083235114

2.1 布局分类

2.1 线性布局

线性布局是开发中最常用·、最基础的布局,通过线性容器Row和Column构建

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.1.1 线性布局子元素排列方向:主轴

image-20241121090407452

布局子元素在排列方向上的间距

在布局容器内,可以通过space属性设置排列方向上子元素的间距

线性布局容器在布局方向的轴线,子元素默认沿主轴排列

.justifyContent(FlexAlign.End)//主轴对齐
.alignItems(HorizontalAlign.Center)//交叉轴对齐  

2.1.2 设置主轴对齐方式

 .justifyContent(FlexAlign.End)//主轴对齐.alignItems(HorizontalAlign.Center)//交叉轴对齐  

image-20241121090911564

不管容器是Coloum还是Row,它们默认的排列方式都是主轴为始端,交叉轴为居中对齐

  1. 设置主轴对齐的方式:JustifyContent(FlexAlign.Center)
  2. 设置交叉轴的对齐方式:alignItems()

自适应拉伸:Blank组件

线性布局下,常用空白填充组件Blank,在容器主轴方向自动填充空白空间,达到自适应的拉伸效果

打个比方,就是你竖屏在看小说,然后你横屏了,小说的内容会跟着横屏的屏幕去调整

image-20241121093045568

2.2 层叠布局

层叠布局用于在屏幕上预留一块区域来显示组件中的元素,提供元素可以重叠的布局

  • 层叠布局通过Stack容器组件实现位置的固定定位与层叠
  • 容器中的子元素(子组件)一次入栈,后一个子元素覆盖前一个子元素,子元素可以叠加,也可设置元素

image-20241121093711961

2.1.1 层叠布局的对齐方式

Stack组件通过alignContent参数实现位置的相对移动

image-20241121095941931

在层叠布局中,如果后面子元素尺寸大于前面子元素的尺寸,则前面子元素完全隐藏

2.1.2 层叠布局的层级控制:Z控制

如何显示前面的元素呢?

  • Stack容器中兄弟组件显示层级关系可以通过Z序控制ZIndex属性改变
  • zIndex值越大,显示的层级越高,即zIndex值大的组件会覆盖在zIndex值小的组件上方

2.1.3 层叠布局的应用场景

使用层叠布局快速搭建手机页面显示模型

image-20241121134023838

2.3 弹性布局

2.3.1 弹性布局的概念

弹性布局提供更加有效的方式对容器中的子元素进行排列、对齐和分配剩余空间

  • 容器默认存在主轴与交叉轴,子元素默认沿主轴排列,子元素在主轴方向的尺寸称为主轴尺寸,在交叉轴方向的尺寸称为交叉尺寸
  • 弹性布局常用在以下场景:如页面头部均匀分布的导航栏、页面框架的搭建、多行数据的排列image-20241121134936895

2.3.2 弹性布局的元素排列方向:direction

弹性布局中,容器的子元素可以按照任意方向排列,通过设置参数direction,可以决定主轴的反向,从而控制子组件的排列方向

image-20241121101155517

2.3.3 案例解析

通过参数FlexDirection.Row和FlexDirection.RowReverse来控制容器主轴为水平方向

image-20241121135300259

通过参数FlexDirection.Column和FlexDirection.ColumnReverse来控制容器主轴为垂直方向

image-20241121135442101

2.4 相对布局

2.4.1 概念

布局容器内子元素支持指定锚点,可以为兄弟元素或者父元素,基于锚点做相应位置布局

  • RelativeContainer为采用相对布局的容器。支持容器内部的子元素设置相对未知关系

image-20241121123948980

2.4.2 相对布局的依赖关系: 锚点设置

锚点设置是指设置子元素相对于父元素或兄弟元素的位置依赖关系

  • 水平方向上,可以设置left、middle、right的锚点
  • 在竖值方向上,可以设置top、center、bottom的锚点
  • 为了明确定义锚点,必须为RelativeContainer及其子元素设置ID,用于指定锚点信息
  • RelativeConrainer的ID默认为“container”,其余子元素的ID通过这只id属性。未设置ID的子元素在RelativeContainer中不会显示
  • 在使用锚点时要注意子元素的相对位置关系,避免出现错位或者遮挡的情况

2.4.3 相对布局的依赖关系:以容器为锚点

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

2.4.4 相对布局的依赖关系:以子元素为锚点

只要在RelativeContainer容器内,均可以通过alignRules进行相应的位置移动

代码案例

@Entry
@Component
struct RelativeContainer1{build() {RelativeContainer() {//父容器组件Text("1111").width(80).height(80).backgroundColor(Color.Gray).alignRules({top:{anchor:"__container__",align:VerticalAlign.Top},left:{anchor:'__container__',align:HorizontalAlign.Start}}).id('Text')Text("2222").width(80).height(80).backgroundColor(Color.Pink).alignRules({top:{anchor:"Text",align:VerticalAlign.Bottom},left:{anchor:"Text",align:HorizontalAlign.End}}).id("Text1")}}
}

image-20241121132722692

相关文章:

鸿蒙UI开发与部分布局

UI开发 1. 布局概述 1.1 开发流程 1.先确定开发流程 -> 2.分析页面元素构成 ->3.选用合适的布局容器组件 1.3 布局元素组成:盒模型 2.1 布局分类 2.1 线性布局 线性布局是开发中最常用、最基础的布局,通过线性容器Row和Column构建 2.1.1 线性布…...

redis的map底层数据结构 分别什么时候使用哈希表(Hash Table)和压缩列表(ZipList)

在Redis中,Hash数据类型的底层数据结构可以是压缩列表(ZipList)或者哈希表(HashTable)。这两种结构的使用取决于特定的条件: 1. **使用ZipList的条件**: - 当Hash中的数据项(即f…...

css水平居中+垂直居中

display:“flex”,position: “absolute”,top:“50%”,left:“50%”,transform: ‘translate(-50%, -50%)’...

设计模式之 组合模式

组合模式(Composite Pattern)是一种结构型设计模式,它通过将对象组合成树形结构来表示“部分-整体”层次。组合模式允许客户端统一处理单个对象和对象集合。换句话说,组合模式让客户端可以像处理单个对象一样处理对象的集合&#…...

LCR 001 两数相除

一.题目: . - 力扣(LeetCode) 二.原始解法-超时: class Solution: def divide(self, a: int, b: int) -> int: # 1)分析: # 除法计算,不能使用除法符号,可以理解为实现除法 # 除法…...

数据库、数据仓库、数据湖、数据中台、湖仓一体的概念和区别

数据库、数据仓库、数据湖、数据中台和湖仓一体是数据管理和分析领域的不同概念,各自有不同的特点和应用场景。以下是它们的主要区别: 1. 数据库(Database) 定义:结构化的数据存储系统,用于高效地存储、检…...

vue 的生命周期函数

Vue 生命周期函数(生命周期钩子)是 Vue 实例从创建到销毁过程中,不同阶段所触发的特定函数。理解这些生命周期函数对于开发 Vue 应用至关重要,因为它们让你在不同的生命周期阶段执行代码,比如数据初始化、DOM 渲染完成…...

单片机UART协议相关知识

概念 UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器) 是一种 异步 串行 全双工 通信协议,用于设备一对一进行数据传输,只需要两根线(TX,RX)。 异步&…...

【操作系统不挂科】<CPU调度(13)>选择题(带答案与解析)

前言 大家好吖,欢迎来到 YY 滴 操作系统不挂科 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 本博客主要内容,收纳了一部门基本的操作系统题目,供yy应对期中考试复习。大家可以参考 本章为选择题题库,试…...

OpenCV笔记:图像去噪对比

图像去噪对比 1. 均值滤波(Mean Filtering) 方法:用像素周围的像素平均值替换每个像素值。适用场景:适用于去除随机噪声,如在不强调图像细节的场景中,如果图像细节较多时,可能会导致图像模糊。…...

A-B数对(二分查找)

#include<bits/stdc.h> using namespace std;using ll long long;int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int n,c;cin>>n>>c;int nu[200000];for(int i0;i<n;i){cin>>nu[i]; // 输入数组元素}sort(nu,nun);ll cnt0; // 统计满…...

Vue 的各个生命周期

详解 Vue 的各个生命周期 文章目录 详解 Vue 的各个生命周期Vue 组件的生命周期1.1 创建阶段示例&#xff1a; 1.2 挂载阶段示例&#xff1a; 1.3 更新阶段示例&#xff1a; 1.4 销毁阶段示例&#xff1a; 生命周期总结生命周期钩子对比表参考链接 Vue 组件的生命周期 在 Vue …...

实现简易计算器 网格布局 QT环境 纯代码C++实现

问题&#xff1a;通过代码完成一个10以内加减法计算器。不需要自适应&#xff0c;界面固定360*350。 ""按钮90*140&#xff0c;其它按钮90*70。 参考样式 #define DEFULT_BUTTON_STYLE "\ QPushButton{\color:#000000;\border:1px solid #AAAAAA;\border-radi…...

后端开发详细学习框架与路线

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;后端开发 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 为帮助你合理安排时间&#xff0c;以下是结合上述学习内容的阶段划分与时间分配建议。时间安排灵活&a…...

2.langchain中的prompt模板 (FewShotPromptTemplate)

本教程将介绍如何使用 LangChain 库中的 PromptTemplate 和 FewShotPromptTemplate 来构建和运行提示&#xff08;prompt&#xff09;&#xff0c;并通过示例数据展示其应用。 安装依赖 首先&#xff0c;确保你已经安装了 langchain 和相关依赖&#xff1a; pip install lan…...

FairGuard游戏加固实机演示

此前&#xff0c;FairGuard对市面上部分游戏遭遇破解的案例进行了详细分析&#xff0c;破解者会采用静态分析与动态调试相结合的手段&#xff0c;逆向分析出代码逻辑并对其进行篡改&#xff0c;实现作弊功能&#xff0c;甚至是对游戏资源文件进行篡改&#xff0c;从而制售外挂。…...

Spark使用过程中的 15 个常见问题、详细解决方案

目录 问题 1&#xff1a;Spark 作业超时问题描述解决方案Python 实现 问题 2&#xff1a;内存溢出问题描述解决方案Python 实现 问题 3&#xff1a;Shuffle 性能问题问题描述解决方案Python 实现 问题 4&#xff1a;Spark 作业调度不均问题描述解决方案Python 实现 问题 5&…...

算法【最长递增子序列问题与扩展】

本文讲解最长递增子序列以及最长不下降子序列的最优解&#xff0c;以及一些扩展题目。本文中讲述的是最优解&#xff0c;时间复杂度是O(n*logn)&#xff0c;空间复杂度O(n)&#xff0c;好实现、理解难度不大。这个问题也可以用线段树来求解&#xff0c;时间和空间复杂度和本节讲…...

k8s篇之flannel网络模型详解

在 Kubernetes (K8s) 中,Flannel 是一种常用的网络插件,用于实现容器之间的网络通信。Flannel 提供了一种覆盖网络(Overlay Network)模型,使得容器可以跨多个主机进行通信。 以下是 Flannel 在 Kubernetes 中的详细工作原理和覆盖网络模型的详解: 1.Flannel 简介 Flann…...

windows 和 linux检查操作系统基本信息

windows检查操作系统基本信息 systeminfolinux检查操作系统基本信息 获取系统位数 getconf LONG_BIT查询操作系统release信息 lsb_release -a查询系统信息 cat /etc/issue查询系统名称 uname -a...

Oracle OCP认证考试考点详解082系列22

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 105. 第105题&#xff1a; 题目 解析及答案&#xff1a; 题目翻译&#xff1a; 关于Oracle数据库中的事务请选择两个正确的陈述&#xf…...

线性回归 - 最小二乘法

线性回归 一 简单的线性回归应用 webrtc中的音视频同步。Sender Report数据包 NTP Timestamp&#xff08;网络时间协议时间戳&#xff09;&#xff1a;这是一个64位的时间戳&#xff0c;记录着发送SR的NTP时间戳&#xff0c;用于同步不同源之间的时间。RTP Timestamp&#xff1…...

Linux - 线程基础

文章目录 1.什么是线程2.线程vs进程3.线程调度4.线程控制4.1 POSIX线程库4.2创建线程4.3线程终止4.4线程等待4.5线程分离 5、线程封装 1.什么是线程 在Linux操作系统中&#xff0c;线程是进程内部的一个执行流。在Linux操作系统下&#xff0c;执行流统称为轻量级进程&#xff0…...

网络爬虫——分布式爬虫架构

分布式爬虫在现代大数据采集中是不可或缺的一部分。随着互联网信息量的爆炸性增长&#xff0c;单机爬虫在性能、效率和稳定性上都面临巨大的挑战。分布式爬虫通过任务分发、多节点协作以及结果整合&#xff0c;成为解决大规模数据抓取任务的核心手段。 本节将从 Scrapy 框架的…...

RT_Thread内核源码分析(三)——线程

目录 1. 线程结构 2. 线程创建 2.1 静态线程创建 2.2 动态线程创建 2.3 源码分析 2.4 线程内存结构 3. 线程状态 3.1 线程状态分类 3.2 就绪状态和运行态 3.3 阻塞/挂起状态 3.3.1 阻塞工况 3.4 关闭状态 3.4.1 线程关闭接口 3.4.2 静态线程关闭 3.4.3 动态线程关…...

正排索引和倒排索引

一、简介 正排索引&#xff1a;一个未经处理的数据库中&#xff0c;一般是以文档ID作为索引&#xff0c;以文档内容作为记录。 倒排索引&#xff1a;Inverted index&#xff0c;指的是将单词或记录作为索引&#xff0c;将文档ID作为记录&#xff0c;这样便可以方便地通过单词或…...

丹摩 | 重返丹摩(上)

目录 一.登录平台 二. 数据管理与预处理 1.数据清洗 2.数据格式转换 3.特征工程 二.数据可视化 1.快速可视化 2.数据洞察 3.自定义视图 三.技术支持与帮助 1.技术支持 (1). 帮助文档 (2). 用户社区 2.客服支持 (1). 在线客服 (2). 反馈与建议 总结 一.登录平台…...

Frontend - 防止多次请求,避免重复请求

目录 一、避免重复执行的多种情况 &#xff08;一&#xff09;根据用途 &#xff08;二&#xff09;根据用户操作 二、具体实现 &#xff08;一&#xff09;“Ajax ”结合disabled (防止多次请求)&#xff0c;避免多次点击重复请求 1. 适用场景 2. 解决办法 3. 示例 &…...

RHCE的学习(22)

第四章 流程控制之条件判断 条件判断语句是一种最简单的流程控制语句。该语句使得程序根据不同的条件来执行不同的程序分支。本节将介绍Shell程序设计中的简单的条件判断语句。 if语句语法 单分支结构 # 语法1&#xff1a; if <条件表达式> then指令 fi #语法2&#x…...

【前端知识】简单讲讲什么是微前端

微前端介绍 一、定义二、背景三、核心思想四、基本要素五、核心价值六、实现方式七、应用场景八、挑战与解决方案 什么是single-spa一、核心特点二、核心原理三、应用加载流程四、最佳实践五、优缺点六、应用场景 什么是 qiankun一、概述二、特点与优势三、核心功能四、使用场景…...

如何设置wordpress的语言/google推广方式和手段有哪些

有可能是作用域的问题...

新开传奇网站999新服网/网站搭建策略与方法

Proactor IO即&#xff0c;在读写IO完成后的通知。 Reactor模式&#xff0c;采用的非阻塞模式&#xff0c;但资源的读写操作仍然是同步的。 而Proactor模式在读写操作上是异步完成的&#xff0c;资源读写靠操作系统完成&#xff0c;而不是应用进程。操作系统完成读写后&#x…...

在别的公司做的网站可以转走吗/北京网络优化推广公司

一、viewport宽度 起源&#xff1a;PC端的网站要显示在移动端有什么问题&#xff1f; 如果把移动端的可是区域设置到&#xff08;320-768&#xff09;的话&#xff0c;大部分网站都会因为太窄而显示错乱所以浏览器默认把viewport【这个viewport指的是layout viewport】设置为一…...

易语言如何做网站/上海短视频推广

许多人宁愿死&#xff0c;也不愿思考&#xff0c;事实上他们也确实至死都没有思考。——伯特兰罗素 思考是所有工作当中最困难的,想必这就是思考的人如此少的原因。——亨利 福特 我在想&#xff0c;什么叫做思考&#xff1f;看了很多网友的回答&#xff1a;“思的上面是一块田…...

第二代营销网站/收录网

关于无法将类型“object”隐式转换为“string” 原码: <script runat"server"> void SubmitBtn_Click(Object sender, EventArgs e) { Session["username"]""; OleDbConnection objConnection; OleDbCommand objCommand; OleDbDataReade…...

做网站如何找项目/seo排名第一的企业

Netty Netty是什么&#xff1f; 本质&#xff1a;JBoss做的一个Jar包 目的&#xff1a;快速开发高性能、高可靠性的网络服务器和客户端程序 优点&#xff1a;提供异步的、事件驱动的网络应用程序框架和工具 通俗的说&#xff1a;一个好使的处理Socket的东东 如果没有Netty&…...