鸿蒙布局Column/Row/Stack

鸿蒙布局Column/Row/Stack

  • 简介
  • 我们以Column为例进行讲解
      • 1. Column({space: 10}) 这里的space: 10,表示Column里面每个元素之间的间距为10
      • 2. width('100%'),height('100%') 表示宽高占比
      • 3. backgroundColor(0xffeeeeee) 设置背景颜色
      • 4. padding({top: 50}) 设置顶部内边距
      • 5. border({width: 1,color: Color.Red,style: BorderStyle.Dotted,radius: 10}) 设置容器的边框
      • 6. justifyContent(FlexAlign.Center)表述元素在主轴排列方式
      • 7. .alignItems(HorizontalAlign.Start)表述元素在副轴排列方式
  • Stack---堆叠布局方式
    • alignContent(Alignment.Center)排列方式介绍
    • zIndex的使用

简介

鸿蒙开发中,最常用的两种线性布局

Column:垂直布局方式
Row:水平布局方式

在这里插入图片描述
在这里插入图片描述

我们以Column为例进行讲解

请看一下下面代码

@Entry
@Component
struct ColumnTest {build() {Column({space: 10}){Text('Column垂直布局')Column({space:20}){Button('测试').width('50%').backgroundColor(Color.Green)Button('测试1').width('50%').backgroundColor(Color.Red)Button('测试2').width('50%').backgroundColor(Color.Blue)}.width('80%').height('50%').backgroundColor(Color.White).justifyContent(FlexAlign.Center)// .alignItems(HorizontalAlign.Start).border({width: 1,color: Color.Red,style: BorderStyle.Dotted,radius: 10})}.width('100%').height('100%').backgroundColor(0xffeeeeee).padding({top: 50})}
}

1. Column({space: 10}) 这里的space: 10,表示Column里面每个元素之间的间距为10

2. width(‘100%’),height(‘100%’) 表示宽高占比

3. backgroundColor(0xffeeeeee) 设置背景颜色

4. padding({top: 50}) 设置顶部内边距

```
padding(50) 表示上下左右,内边距全部都是50
padding({top: 50,left: 30}) 表示顶部内边距50,左边内边距30
```
如果使用margin外边距,道理类似

5. border({width: 1,color: Color.Red,style: BorderStyle.Dotted,radius: 10}) 设置容器的边框

```
width: 1 边框宽1
color: Color.Red 边框颜色
style: BorderStyle.Dotted 边框线条方式Dotted 点Dashed 线段Solid 实线
radius: 10 设置容器圆角
```

6. justifyContent(FlexAlign.Center)表述元素在主轴排列方式

对于Column来说主轴就是Y(竖轴)

对于Row来说主轴就是X(横轴)

FlexAlign有以下几种排列方式:

FlexAlign.Start 头部对齐
FlexAlign.Center 中间对齐
FlexAlign.End 底部对齐
FlexAlign.SpaceAround 元素与元素之间,元素与顶部或底部之间距离一样
FlexAlign.SpaceBetween 元素与元素之间距离一样,元素与顶部或底部之间距离为0
FlexAlign.SpaceEvenly 元素与元素之间距离一样,元素与顶部或底部之间距离为元素相邻间距的一般

FlexAlign.Start 展示方式
在这里插入图片描述

FlexAlign.End 展示方式
在这里插入图片描述

FlexAlign.Center 展示方式
在这里插入图片描述

FlexAlign.SpaceAround 展示方式
在这里插入图片描述

FlexAlign.SpaceBetween 展示方式
在这里插入图片描述

FlexAlign.SpaceEvenly 展示方式
在这里插入图片描述

7. .alignItems(HorizontalAlign.Start)表述元素在副轴排列方式

对于Column来说副轴就是X(横轴)

对于Row来说副轴就是Y(竖轴)

HorizontalAlign有以下几种排列方式:

HorizontalAlign.Start
HorizontalAlign.Center
HorizontalAlign.End

HorizontalAlign.Start 展示方式
在这里插入图片描述

HorizontalAlign.Center 展示方式
在这里插入图片描述

HorizontalAlign.End 展示方式
在这里插入图片描述

Stack—堆叠布局方式

这是一种在屏幕Z轴方向上的一种布局方式,类似于将所有的元素堆叠在一起,最后加入的在最上层,除非有明确指明放在那一层。

Stack(){Column().width(300).height(300).backgroundColor(Color.Black)Column().width(250).height(250).backgroundColor(Color.Orange)Column().width(200).height(200).backgroundColor(Color.Red)}.width('100%').height('50%').backgroundColor(Color.White).alignContent(Alignment.Center)

在这里插入图片描述

上面我们定义了3个Column,以Stack的方式堆叠在一起。

这里面的宽高/背景色,就不再介绍。

alignContent(Alignment.Center)排列方式介绍

Alignment有以下几种形式

Alignment.TopStart  左上角
Alignment.Top 顶部中间
Alignment.TopEnd 右上角
Alignment.Start 中间左边
Alignment.Center 中间
Alignment.End 中间右边
Alignment.BottomTop 左下角
Alignment.Bottom 底部中间
Alignment.BottomEnd 右下角

在这里插入图片描述

zIndex的使用

除了按照顺序添加元素外,还可以使用zIndex手动调整添加元素在stack中的第几层。

Column().width(100).height(100).backgroundColor(Color.Red).zIndex(4)

zIndex的值越来,层级就越高,也就是在最上层,也最容易被看到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1421282.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

《构建智能财务预算与管控技术架构:实现企业财务管理的高效运作》

在当今数字化时代,企业财务预算与管控技术的应用已成为企业管理的关键一环。通过构建智能化的财务预算与管控技术架构,企业能够实现财务管理的精细化、智能化和高效化,从而更好地应对市场竞争和风险挑战,提升企业的竞争力和盈利能…

JAVA多线程并发(一)-- JAVA线程简介

一、JAVA线程实现/创建方式 在Java中,线程的创建与实现主要有三种方式:继承Thread类、实现Runnable接口以及使用Callable接口配合FutureTask和ExecutorService。下面将分别介绍这三种方式,并通过实际案例代码进行演示。 1. 继承Thread类 T…

Oracle如何收缩减小表空间大小

比如我们发现一个表空间占用比较大,但是空闲空间很大,想要减小表空间占用大小。查看表空间的情况 发现BETEST表空间占用大,但是剩余大小比较大,可以减小存储占用。 如果我们想减小到100MB,那么就登录其用户执行&#…

回溯之组合总和II

上一篇文章使用回溯解决了组合总和I,这次使用回溯解决组合总和II,下面先给出回溯的模板代码。 private void backtracking(参数1,参数2,...){if(递归终止条件){收集结果;return;}for(遍历集合){处理;backtracking(参数1,参数2,...); // 递归;回溯;} }组…

进程的共享主存通信实验

进程的共享主存通信 【预备知识】 共享存储区为进程提供了直接通过主存进行通信的有效手段,不像消息缓冲机制那样需要系统提供缓冲,也不像pipe机制那样需要事先建立一个特殊文件,而是由通信双方直接访问某些共享虚拟储存空间。在Linux中&…

2024情感聊天赛道,al工具制做,视频一分钟一条,日入500+

在这个领域,我们可以利用AI技术快速制作情感文章和闲聊内容。基本原理是结合热门创意文案,通过AI生成情感聊天短视频,然后在各大网站进行独家代理,这个领域的竞争相对较小,可以说是一片蓝海。 项 目 地 址 &#xff…

ue5地编模块学习记录

ue5网站功能3d溜溜网下载模型https://anyconv.com/max-to-fbx-converter/3dmax转换fbx模型解决问题记录 一、光源 搜索光源搜索不到的时候可以点击 窗口> 对场景内的光照进行处理

【5月13日】YesPMP平台目前最新项目

YesPMP平台目前最新项目,有感兴趣的用户查看项目接单,与项目方沟通,双方直接对接。 1.查看项目:blender动画师 2查看项目:找宠友信息源码 3.查看项目:儿童…

基础ArkTS组件:帧动画,内置动画组件,跑马灯组件(HarmonyOS学习第三课【3.6】)

帧动画 帧动画也叫序列帧动画,其原理就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。ArkUI开发框架提供了 ImageAnimator 组件实现帧动画能力,本节笔者介绍一下 ImageAnimator 组件的简单使用。 官方文献 说明 该组件从A…

创建Chrome插件:自动刷新网页

创建Chrome插件:自动刷新网页 前言 在日常工作和生活中,我们经常需要频繁刷新网页以获取最新的数据和信息。无论是开发人员进行网站测试,还是用户关注实时股市动态,手动刷新网页既耗时又低效。因此,本文将介绍如何创…

WPF使用ItemsControl显示Object的所有属性值

对于上位机开发,我们有时候有这样的需求:如何显示所有的IO点位?比如有10个IO点位,那我们要写10个TextBlock去绑定这10个点位的属性(本文暂时不考虑显示的样式,当然也可以考虑),当点位…

快手短剧,和爱优腾踏入同一条河流

文丨黄小艺 “我们定制短剧的重心排序分别是抖音、淘宝、快手。”MCN机构从业者周明(化名)说道,“无论是单条还是品牌冠名剧,我们在快手短剧拿到的收益都相对偏低。” 近期,商业数据派和多家机构创作者沟通后发现&am…

基于springboot实现高校教师电子名片系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现高校教师电子名片系统演示 摘要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,名片信息因为其管理内容繁杂&#xff…

Java入门基础学习笔记19——关系运算符、逻辑运算符

关系运算符: 判断数据是否满足条件,最终会返回一个判断的结果,这个结果是布尔类型的值:true或false。 注意:在java中判断是否相等一定是“”,不要把“”写成“”,“”是赋值表达式。 package c…

FANUC机器人初始化系统的基本方法和步骤

FANUC机器人初始化系统的基本方法和步骤 首先,在做系统初始化之前,必须做好系统的备份,这里做个镜像备份,更详细的镜像备份步骤可参考以下链接中的内容: FANUC机器人进行全部备份和镜像备份以及加载备份文件的具体操作(图文) 如下图所示,在示教器右边的USB接口上插个…

【安全每日一讲】加强数据安全保护 共享数字化时代便利

前言 数据安全是数据治理的核心内容之一,随着数据治理的深入,我不断的碰到数据安全中的金发姑娘问题(指安全和效率的平衡)。 DAMA说,降低风险和促进业务增长是数据安全活动的主要驱动因素,数据安全是一种资…

数据结构(一)绪论

2024年5月11日 一稿 数据元素+数据项 逻辑结构 集合 线性结构 树形结构 图结构

其他的 框架安全:Apache Shiro 漏洞序列.(CVE-2016-2807)

什么是 Apache Shiro Apache Shiro 是一个强大且易用的Java安全框架,它为应用程序提供了身份验证、授权、加密和会话管理等常见的安全功能。漏洞大多会发生在登录处,返回包里包含remeberMedeleteMe字段.( Shiro 这个属于第三方的&#xff0c…

Redis数据结构扩容源码分析

1 Redis数据结构 redis的数据存储在dict.中,其数据结构为(c源码) ypedef struct dict { dictType *type; //理解为面向对象思想,为支持不同的数据类型对应dictType抽象方法,不同的数据类型可以不同实现 void *privdata; //也可不同的数据类…

数据缓存,可以尝试RocksDB了

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen shigen在最近的学习中,接触到了一款新的缓存数据库RocksDB&#xff…