鸿蒙5.0开发进阶:UI开发组件布局-层叠布局 (Stack)

鸿蒙HarmonyOS实战-ArkUI组件(Stack) HarmonyOS中的层叠布局Stack是一种可以将多个组件按照一定顺序叠放的布局。Stack布局中的组件可以是任意类型的组件,且每个组件都可以设置在哪个位置叠放。在叠放时,后添加的组件会自动覆盖前面添加的组件。Stack布局布局中的每个子组件都可以设置偏移量、旋转角度等属性,这样可以实现更加丰富的叠放效果。此外,Stack布局还支持添加动画,通过动画可以实现组件的平移、旋转等动态效果,使页面更加生动有趣。 阅读详情

往期鸿蒙全套实战文章必看:


概述

层叠布局(StackLayout)用于在屏幕上预留一块区域来显示组件中的元素,提供元素可以重叠的布局。层叠布局通过Stack容器组件实现位置的固定定位与层叠,容器中的子元素依次入栈,后一个子元素覆盖前一个子元素,子元素可以叠加,也可以设置位置。

层叠布局具有较强的页面层叠、位置定位能力,其使用场景有广告、卡片层叠效果等。

如图1,Stack作为容器,容器内的子元素的顺序为Item1->Item2->Item3。

图1 层叠布局

开发布局

Stack组件为容器组件,容器内可包含各种子元素。其中子元素默认进行居中堆叠。子元素被约束在Stack下,进行自己的样式定义以及排列。

// xxx.ets
let MTop:Record<string,number> = { 'top': 50 }

@Entry
@Component
struct StackExample {
  build() {
    Column(){
      Stack({ }) {
        Column(){}.width('90%').height('100%').backgroundColor('#ff58b87c')
        Text('text').width('60%').height('60%').backgroundColor('#ffc3f6aa')
        Button('button').width('30%').height('30%').backgroundColor('#ff8ff3eb').fontColor('#000')
      }.width('100%').height(150).margin(MTop)
    }
  }
}

对齐方式

Stack组件通过alignContent参数实现位置的相对移动。如图2所示,支持九种对齐方式。

图2 Stack容器内元素的对齐方式

// xxx.ets
@Entry
@Component
struct StackExample {
  build() {
    Stack({ alignContent: Alignment.TopStart }) {
      Text('Stack').width('90%').height('100%').backgroundColor('#e1dede').align(Alignment.BottomEnd)
      Text('Item 1').width('70%').height('80%').backgroundColor(0xd2cab3).align(Alignment.BottomEnd)
      Text('Item 2').width('50%').height('60%').backgroundColor(0xc1cbac).align(Alignment.BottomEnd)
    }.width('100%').height(150).margin({ top: 5 })
  }
}

Z序控制

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

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

Stack({ alignContent: Alignment.BottomStart }) {
  Column() {
    Text('Stack子元素1').textAlign(TextAlign.End).fontSize(20)
  }.width(100).height(100).backgroundColor(0xffd306)

  Column() {
    Text('Stack子元素2').fontSize(20)
  }.width(150).height(150).backgroundColor(Color.Pink)

  Column() {
    Text('Stack子元素3').fontSize(20)
  }.width(200).height(200).backgroundColor(Color.Grey)
}.width(350).height(350).backgroundColor(0xe0e0e0)

上图中,最后的子元素3的尺寸大于前面的所有子元素,所以,前面两个元素完全隐藏。改变子元素1,子元素2的zIndex属性后,可以将元素展示出来。

Stack({ alignContent: Alignment.BottomStart }) {
  Column() {
    Text('Stack子元素1').fontSize(20)
  }.width(100).height(100).backgroundColor(0xffd306).zIndex(2)

  Column() {
    Text('Stack子元素2').fontSize(20)
  }.width(150).height(150).backgroundColor(Color.Pink).zIndex(1)

  Column() {
    Text('Stack子元素3').fontSize(20)
  }.width(200).height(200).backgroundColor(Color.Grey)
}.width(350).height(350).backgroundColor(0xe0e0e0)

场景示例

使用层叠布局快速搭建页面。

@Entry
@Component
struct StackSample {
  private arr: string[] = ['APP1', 'APP2', 'APP3', 'APP4', 'APP5', 'APP6', 'APP7', 'APP8'];

  build() {
    Stack({ alignContent: Alignment.Bottom }) {
      Flex({ wrap: FlexWrap.Wrap }) {
        ForEach(this.arr, (item:string) => {
          Text(item)
            .width(100)
            .height(100)
            .fontSize(16)
            .margin(10)
            .textAlign(TextAlign.Center)
            .borderRadius(10)
            .backgroundColor(0xFFFFFF)
        }, (item:string):string => item)
      }.width('100%').height('100%')

      Flex({ justifyContent: FlexAlign.SpaceAround, alignItems: ItemAlign.Center }) {
        Text('联系人').fontSize(16)
        Text('设置').fontSize(16)
        Text('短信').fontSize(16)
      }
      .width('50%')
      .height(50)
      .backgroundColor('#16302e2e')
      .margin({ bottom: 15 })
      .borderRadius(15)
    }.width('100%').height('100%').backgroundColor('#CFD0CF')
  }
}

看完三件事❤️

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注作者龚众皓: 『 蜀道衫 』,不定期分享原创知识。
  • 关注后回复【666】扫码即可获取学习文档。
  • 同时可以期待后续文章ing🚀
HarmonyOS Next开发学习手册——层叠布局 (Stack) 层叠布局(StackLayout)用于在屏幕上预留一块区域来显示组件中的元素,提供元素可以重叠的布局。层叠布局通过 Stack 容器组件实现位置的固定定位与层叠,容器中的子元素依次入栈,后一个子元素覆盖前一个子元素,子元素可以叠加,也可以设置位置。层叠布局具有较强的页面层叠、位置定位能力,其使用场景有广告、卡片层叠效果等。如图1,Stack作为容器,容器内的子元素的顺序为Item1->Item2->Item3。图1层叠布局。 阅读详情

相关推荐

鸿蒙next版开发:ArkUI组件(Stack)

HarmonyOS中的层叠布局Stack是一种可以将多个组件按照一定顺序叠放的布局。

SOFTQAQ的博客 666

鸿蒙Harmony-层叠布局(Stack)详解

我们总是为了太多遥不可及的东西去拼命,却忘了人生真正的幸福不过是灯火阑珊处的温暖,柴米油盐的充实,人生无论你赚的钱,是多还是少,经历的事情是好还是坏,都不如过好当下的每一天!

袁震的博客 3927

HarmonyOS核心知识点:ArkUI框架之层叠布局 (Stack)

层叠布局(StackLayout)用于在屏幕上预留一块区域来显示组件中的元素,提供元素可以重叠的布局。层叠布局通过 Stack 容器组件实现位置的固定定位与层叠,容器中的子元素依次入栈,后一个子元素覆盖前一个子元素,子元素可以叠加,也可以设置位置。层叠布局具有较强的页面层叠、位置定位能力,其使用场景有广告、卡片层叠效果等。如图1,Stack作为容器,容器内的子元素的顺序为Item1->Item2->Item3。图1层叠布局。

wuliusan5的博客 761

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

HarmonyOS中的层叠布局Stack是一种可以将多个组件按照一定顺序叠放的布局。Stack布局中的组件可以是任意类型的组件,且每个组件都可以设置在哪个位置叠放。在叠放时,后添加的组件会自动覆盖前面添加的组件。Stack布局布局中的每个子组件都可以设置偏移量、旋转角度等属性,这样可以实现更加丰富的叠放效果。此外,Stack布局还支持添加动画,通过动画可以实现组件的平移、旋转等动态效果,使页面更加生动有趣。

愚公智库 6万+

鸿蒙应用开发学习-初识ArkUI

方舟开发框架(简称:ArkUI)

初一十五的博客 1976

基于人脸识别的智能门禁系统设计

在当前的技术背景下,本文精心打造了一款前沿的视频识别门禁控制系统。在进行调试的时候使用的软件是Keil,编写完代码,生成文件后用下载器下载到单片机上,就能够进行程序的调试了,本次设计实现了预先设定的目标,达到了预期的效果。本次设计的人脸识别的门禁控制系统其硬件部分是以STM32F103C8T6为核心的单片机,采用0V2640摄像头对人员的人脸识别,采用矩阵按键对系统的操作以及密码的输入,使用蜂鸣器来作为报警模块,开门装置是电子锁控制,显示设备采用OLED液晶显示,无线模块在一番思索后选择了蓝牙模块传输。

2401_86147581的博客 1299

鸿蒙5.0开发进阶:UI框架-层叠布局 (Stack)

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

Androidbye的博客 980

【mip-NeRF】使用一组二维图像渲染3D场景视频(mip-NeRF论文复现)

本文对mip-NeRF模型的pytorch实现进行了复现

Ryan2k的博客 1852

鸿蒙开发-UI-布局-层叠布局

上文详细学习了线性布局,学习了线性容器内子元素在主轴以及交叉轴上的排列方式,子元素自适应相关的知识点,本文继续学习层叠布局。本文详细学习常见布局方式-层叠布局,学习如何控制层叠布局中子元素的堆叠顺序,后面继续学习弹性布局。

中年程序员 2133

在 SAP S/4HANA Public Cloud 中,用 RAP 一键生成 PDF 并在 Fiori 前端触发下载的完整方案

create;update;delete;// 生成并返回当前文档上下文。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 417

YOLOv8/v9 遥感图像目标检测实战指南:建筑物检测与变化监测

遥感图像在城市规划、灾害评估、农业监管等领域应用广泛,但传统目标检测方法存在效率低、精度不足、难以适配遥感图像大尺寸、多尺度目标等问题。本文以“建筑物检测与变化监测”为核心,基于DOTA、NWPU VHR-10等公开数据集,系统讲解YOLOv8/v9在遥感图像中的实战流程。从数据获取、格式转换、模型训练优化,到大图切片推理、建筑物变化监测,全程提供可复现的代码与参数配置。通过针对性优化(旋转增强、切片推理等),模型在NWPU VHR-10数据集上mAP50达0.85以上,可适配卫星影像、无人机航拍等多场景

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 520

鸿蒙-层叠布局

层叠布局是一种将子组件按照先后顺序一层一层地叠放在一起的布局方式。通俗易懂一点的理解:想象成一叠扑克牌或者一摞书,先放的在最下面,后放的在最上面;后放入的子组件会覆盖在先放入的子组件之上。核心特点:1、重叠放置:子组件在默认情况下,其左上角都会与Stack的,导致它们重叠在一起。2、决定层级:在代码中,先声明的子组件在底层,后声明的在顶层。3、灵活定位:可以通过align和position等属性,每个子组件在Stack中的位置,这是Stack布局最强大的地方。

2303_77656826的博客 941

SA8295P QNX主机上电启动流程分析

嵌入式系统的启动过程对于确保系统正常运行至关重要。本文将详细分析SA8295P芯片在QNX主机上的上电启动流程,并提供相应的源代码示例。嵌入式系统的启动过程对于确保系统正常运行至关重要。本文将详细分析SA8295P芯片在QNX主机上的上电启动流程,并提供相应的源代码示例。以下是一个SA8295P QNX主机上电启动流程分析。

CodeMaven的博客 1233

鸿蒙开发之路:布局基础之层叠布局Stack的层叠、对齐与绝对定位实战

Stack层叠布局是HarmonyOS ArkUI框架中极具表现力的布局工具,通过掌握其层叠原理、对齐方式和定位技术,开发者可以创建出丰富多样的界面效果。关键在于根据具体场景选择合适的定位策略,并遵循性能优化最佳实践。在实际开发中,建议结合DevEco Studio的实时预览功能,实时调试Stack布局的层叠效果和定位位置,确保在不同设备上都能获得一致的视觉体验。思考题:在你的项目实践中,哪些场景下Stack布局解决了传统线性布局无法解决的问题?你是如何处理复杂层叠场景下的性能优化挑战的?

m0_72846959的博客 4394

YOLO11-Seg优化:注意力魔改 | 具有切片操作的SimAM注意力,魔改SimAM

问题点:SimAM计算整张特征图的像素差平均值时加权可能会忽略小目标的重要性,同时与整体平均值相比可能和背景信息相似,导致加权增强较弱;

会AI的学姐 460

Arduino ESP32 Web服务器从microSD卡读取

Arduino ESP32 Web服务器从microSD卡读取 将网页内容放到SD卡中,当有客户端数据请求时,从SD卡读取信息进行发送,比起SPIFFS文件系统,更节约板上的硬件资源。 SD卡接线说明 ESP32----- SD D5(GPIO 5)-----CS D18(GPIO 18)-----SCK D19(GPIO 19)-----MISO D23()GPIO 23-----MOSI 文件放置 需要把文件放置到SD卡的根目录下。注意SD卡的格式FAT32格式。 实例代码 /*

perseverance51博客 1435

鸿蒙学习实战之路-层叠布局 Stack 全攻略

层叠布局(Stack Layout)就是在屏幕上划一块地方,让里面的元素能重叠显示的布局方式。想象一下你在桌上摆积木,后面放的积木会挡住前面的,Stack 布局就是这个原理!Stack 容器里的子元素会按顺序"入栈",后一个元素覆盖前一个元素,就像这样:层叠布局特别适合做广告弹窗、卡片悬浮效果、底部导航栏等需要元素重叠的场景~层叠布局 Stack:让元素重叠显示的布局方式对齐方式:用控制元素堆叠的位置Z 序控制:用zIndex控制元素的显示层级实战案例:仿手机桌面布局,带悬浮底部导航栏🥦。

u011864152的博客 2727

重回童年的经典系列☀️|【炸弹人小游戏】制作过程+解析 | 收藏起来跟曾经的小伙伴一起梦回童年!

Unity,小游戏开发。 本篇文章对童年经典小游戏——炸弹超人进行制作和解析。不知道有没有勾起你童年的回忆呢!快来和我一起制作这个童年经典的小游戏吧! 敬请品尝!

努力前行,总会成为自己心中的那道光 13万+

鸿蒙5.0进阶开发:UI开发-构建布局(层叠布局 (Stack))

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

AyomQAQ的博客 663

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ssm框架搭建

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

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

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

守夜人 5360

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

鸿蒙next开发:UI开发-构建布局(层叠布局 (Stack))

本文详细讲解了Stack组件的使用,包括子元素的默认居中堆叠、对齐方式(九种对齐方式)、Z序控制(通过zIndex属性调整显示层级)以及实际开发中的场景示例。

qq_39652397的博客 539

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

鸿蒙HarmonyOS应用开发,UI开发(一)层叠布局

层叠布局(StackLayout)用于在屏幕上预留一块区域来显示组件中的元素,提供元素可以重叠的布局。层叠布局通过Stack容器组件实现位置的固定定位与层叠,容器中的子元素依次入栈,后一个子元素覆盖前一个子元素,子元素可以叠加,也可以设置位置。层叠布局具有较强的页面层叠、位置定位能力,其使用场景有广告、卡片层叠效果等。

wwwwmmmmyyybshjz的博客 725

鸿蒙5.0版开发:ArkUI框架开发-层叠布局 (Stack)

层叠布局具有较强的页面层叠、位置定位能力,其使用场景有广告、卡片层叠效果等。

m0_73088370的博客 544

HarmonyOS:层叠布局(Stack)

StackLayout是一种容器组件,支持子元素层叠显示,后添加元素默认覆盖前者。文档详细介绍了Stack的三大核心特性:1)alignContent参数支持九宫格对齐方式;2)zIndex层级控制可调整显示顺序;3)默认按插入顺序堆叠。通过应用图标+底部导航栏的实例演示了实际应用,并给出性能优化建议:避免过度嵌套,优先使用样式属性替代容器。适用于卡片叠加、悬浮按钮等需要多层元素堆叠的场景。

2401_87008233的博客 717

鸿蒙ArkUI布局与样式进阶(八)——生肖抽卡项目实例特辑

本文介绍了使用鸿蒙ArkUI开发生肖抽卡应用的完整过程。主要内容包括:1)利用Grid组件实现卡片网格布局,配合Badge组件显示剩余数量;2)通过Stack层叠容器实现抽卡结果弹窗,结合Column布局和动画效果;3)实现随机抽卡逻辑和状态管理,包括数据绑定、动画控制(透明度、层级、缩放)和交互逻辑。文章提供了详细代码示例,涵盖布局设计、组件使用到完整功能实现,并建议了后续拓展方向,如本地存储和动效增强,帮助开发者快速掌握ArkUI开发精髓。

2502_91577682的博客 1437

10.11 Stack层叠布局及案例

容器组件实现位置的固定定位与层叠,容器中的子元素依次入栈,后一个子元素覆盖前一个子元素,子元素可以叠加,也可以设置位置。层叠布局(StackLayout)用于在屏幕上预留一块区域来显示组件中的元素,提供元素可以重叠的布局。空白填充组件,在容器【布局组件】主轴方向上,空白填充组件具有自动填充容器空余部分的能力。Span组件必须嵌入在Text组件中才能显示,单独的Span组件不会呈现任何内容。【文件菜单】【设置】【插件】【搜索该插件】【安装】提供分隔器组件,分隔不同内容块/内容元素。Divider实现竖线。

2503_92841156的博客 622
上一篇: 鸿蒙5.0开发进阶:UI开发组件布局-线性布局 (Row/Column)
下一篇: 鸿蒙5.0开发进阶:UI开发组件布局-弹性布局 (Flex)
懂你的大海
博客等级 码龄6年 9049粉丝 1381原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值