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

鸿蒙HarmonyOS实战-ArkUI组件(Stack) HarmonyOS中的层叠布局Stack是一种可以将多个组件按照一定顺序叠放的布局。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')
  }
}

 

看完三件事❤️

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注作者,不定期分享原创知识。
  • 同时可以期待后续文章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

C# WinForms实战:5分钟用ScottPlot打造专业级示波器界面(附完整代码)

本文详细介绍了如何在C# WinForms应用中,利用ScottPlot.WinForms库快速构建一个专业级的软件示波器界面。通过从环境配置、静态波形绘制到动态数据实时更新的完整实战演示,帮助开发者高效实现高性能的波形显示功能,适用于工业监控、信号分析等多种场景。

weixin_29198045的博客 831

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

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

Androidbye的博客 838

WhatsApp网页版扫码分析

扫码登录本质上是WhatsApp的多设备登录,设备之间可以独立运行,那么当我们首次通过WhatsApp扫码登录二维码时,到底发生了那些事情?交换了那些数据?

SocialMarketing的博客 5231

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

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

中年程序员 2133

大漠多线程增强版:解决窗口消失、坐标错乱与识别卡死

多线程环境下窗口自动化面临的核心挑战,本质是GDI资源非线程安全、HWND生命周期失控及图像引擎状态污染三大底层问题。Windows GUI编程中,跨线程共享hDC、缓存失效的窗口句柄、OpenCV静态Mat等设计缺陷,导致FindPic失败、GetCursorPos异常、坐标跳变等典型故障。本方案通过线程局部存储(TLS)重构资源生命周期、WinEventHook+心跳探测构建实时窗口状态链、ABI对齐的多语言内存契约,实现稳定低延迟的并发UI识别与控制。适用于游戏多开监控、电商RPA、后台UI状态采集等

weixin_30561177的博客 478

未来计算的革命:探索存算一体芯片的潜力与挑战

未来计算的革命:探索存算一体芯片的潜力与挑战

jtwqwq的博客 1616

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

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

m0_72846959的博客 4394

FPGA新手必看:XC7Z020最小系统搭建全攻略(附原理图解析)

本文为FPGA新手提供了XC7Z020最小系统搭建的完整实战指南。文章详细解析了电源架构、时钟复位、配置调试等关键硬件电路设计,并重点剖析了外围电路与端口引脚的连接要点及常见陷阱,帮助读者从零开始构建稳定可靠的开发平台。

weixin_29189377的博客 360

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

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

u011864152的博客 2727

数据中心光模块升级实录:从200G QSFP56到400G QSFP-DD的踩坑指南

本文记录了数据中心从200G QSFP56升级至400G QSFP-DD光模块的完整实战经验。文章深入剖析了升级过程中面临的兼容性、链路预算、布线、散热与功耗管理等核心挑战,并提供了具体的解决方案与排坑指南,为高速网络升级提供了宝贵的实践参考。

butter的博客 482

第一章:GEE 和 GEEMAP

在本章中,我们将介绍地理空间数据科学、谷歌地球引擎和地理地图的基础知识。然后,我们将逐步完成设置 conda 环境和安装 geemap 的步骤。我们还将学习如何在不在您的计算机上安装任何东西的情况下将 geemap 与 Google Colab 一起使用。...

韩天放 8051

鸿蒙-层叠布局

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

2303_77656826的博客 941

Android 13.0 app进程保活白名单功能实现

在13.0的系统rom产品开发中,在某些重要的app即使进入后台,产品需求要求也不想被系统杀掉进程,需要app长时间保活,就是app进程保活白名单功能的实现, 所以需要在系统杀进程的时候不杀掉白名单的进程,接下来就看怎么样来实现这些功能

安卓兼职framework和app工程师的博客 3143

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

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

AyomQAQ的博客 663

Camera2Demo

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

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

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

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

m0_73088370的博客 544

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

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

守夜人 5360

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

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

qq_39652397的博客 539

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

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

wwwwmmmmyyybshjz的博客 725

HarmonyOS:层叠布局(Stack)

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

2401_87008233的博客 717

鸿蒙原生ArkTS布局方式之Stack中层叠布局深度解析

本文介绍了鸿蒙HarmonyOS中Stack布局的核心概念与应用。Stack作为层叠布局容器,通过子组件声明顺序实现堆叠效果,适用于图片叠加、悬浮按钮、遮罩层等场景。文章详细解析了Stack的API,包括构造函数、属性设置(特别是alignContent对齐方式)和事件处理,并通过代码示例展示了不同对齐模式的效果。最后对比了Stack与其他布局容器的差异,帮助开发者根据需求选择合适的布局方式。Stack布局以其层叠性和灵活性,成为构建复杂UI界面的重要工具。

langruotian的博客 399

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

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

2502_91577682的博客 1437
上一篇: 鸿蒙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、付费专栏及课程。

余额充值