首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

鸿蒙HarmonyOS实战-ArkUI组件(Stack)

  • 25-02-22 03:21
  • 4133
  • 12284
blog.csdn.net

 一、Stack

1.概述

HarmonyOS中的层叠布局Stack是一种可以将多个组件按照一定顺序叠放的布局。Stack布局中的组件可以是任意类型的组件,且每个组件都可以设置在哪个位置叠放。在叠放时,后添加的组件会自动覆盖前面添加的组件。

Stack布局布局中的每个子组件都可以设置偏移量、旋转角度等属性,这样可以实现更加丰富的叠放效果。此外,Stack布局还支持添加动画,通过动画可以实现组件的平移、旋转等动态效果,使页面更加生动有趣。

因为Stack布局支持多种类型的组件,且可以实现丰富的叠放效果,所以在开发中可以广泛应用,如在制作卡片式布局、轮播图等场景中都可以使用Stack布局。

Stack作为容器,容器内的子元素(子组件)的顺序为Item1->Item2->Item3
在这里插入图片描述

2.开发布局

Stack布局的核心思想是将多个控件按照一定顺序叠放在一起,比如,一个图像控件在上面,一个文本控件在下面。这种布局方式可以让应用程序在不同的屏幕尺寸和分辨率下,以及不同的设备上呈现出更加统一的效果。同时,Stack布局还支持一些特殊的效果,比如在界面上实现弹出效果、拖拽效果等等。

在HarmonyOS中,开发者可以通过使用ArkUI提供的Stack布局来快速构建具有层叠效果的界面。Stack布局支持多种控件的布局方式,比如文本、图像、按钮等等。开发者可以根据自己的需要选择不同的控件进行布局。通过合理的设计和排布,可以让应用程序在不同的设备上呈现出更加统一、美观的效果。

具有如图:

  1. Column(){
  2. Stack({ }) {
  3. Column(){}.width('90%').height('100%').backgroundColor('#ff58b87c')
  4. Text('text').width('60%').height('60%').backgroundColor('#ffc3f6aa')
  5. Button('button').width('30%').height('30%').backgroundColor('#ff8ff3eb').fontColor('#000')
  6. }.width('100%').height(150).margin({ top: 50 })
  7. }

在这里插入图片描述

3.对齐方式

ArkUI中Stack的alignContent属性用于定义Stack内的所有子元素在交叉轴上的排列方式。该属性仅在Stack容器内含有多行子元素时才会生效。
在这里插入图片描述

4.Z序控制

在HarmonyOS中,层叠布局(Stack)的zIndex属性用于指定子布局的叠放顺序,决定了子布局的显示先后顺序。zIndex属性值较大的子布局会在zIndex属性值较小的子布局的上方显示。例如,zIndex属性值为2的子布局会在zIndex属性值为1的子布局的上方显示。

如果两个子布局的zIndex属性值相同,则它们的显示顺序将按照它们在布局中的位置确定。越靠后的子布局会在越靠前的子布局的上方显示。

值得注意的是,只有在使用层叠布局(Stack)时,zIndex属性才会起作用。如果使用线性布局或网格布局等其他类型的布局,则zIndex属性不会起作用。

  1. Stack({ alignContent: Alignment.BottomStart }) {
  2. Column() {
  3. Text('Stack子元素1').fontSize(20)
  4. }.width(100).height(100).backgroundColor(0xffd306).zIndex(2)
  5. Column() {
  6. Text('Stack子元素2').fontSize(20)
  7. }.width(150).height(150).backgroundColor(Color.Pink).zIndex(1)
  8. Column() {
  9. Text('Stack子元素3').fontSize(20)
  10. }.width(200).height(200).backgroundColor(Color.Grey)
  11. }.margin({ top: 100 }).width(350).height(350).backgroundColor(0xe0e0e0)

在这里插入图片描述

5.宫格案例

  1. @Entry
  2. @Component
  3. struct StackSample {
  4. private arr: string[] = ['APP1', 'APP2', 'APP3', 'APP4', 'APP5', 'APP6', 'APP7', 'APP8'];
  5. build() {
  6. Stack({ alignContent: Alignment.Bottom }) {
  7. Flex({ wrap: FlexWrap.Wrap }) {
  8. ForEach(this.arr, (item) => {
  9. Text(item)
  10. .width(100)
  11. .height(100)
  12. .fontSize(16)
  13. .margin(10)
  14. .textAlign(TextAlign.Center)
  15. .borderRadius(10)
  16. .backgroundColor(0xFFFFFF)
  17. }, item => item)
  18. }.width('100%').height('100%')
  19. Flex({ justifyContent: FlexAlign.SpaceAround, alignItems: ItemAlign.Center }) {
  20. Text('联系人').fontSize(16)
  21. Text('设置').fontSize(16)
  22. Text('短信').fontSize(16)
  23. }
  24. .width('50%')
  25. .height(50)
  26. .backgroundColor('#16302e2e')
  27. .margin({ bottom: 15 })
  28. .borderRadius(15)
  29. }.width('100%').height('100%').backgroundColor('#CFD0CF')
  30. }
  31. }

在这里插入图片描述

 ?写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing?,不定期分享原创知识。
  • 想要获取文中提到的学习资料,请点击→全套鸿蒙HarmonyOS学习资料
  • 或者关注小编后私信回复【666】也可获取资料哦~~

注:本文转载自blog.csdn.net的蜀道山QAQ的文章"https://blog.csdn.net/shudaoshanQAQ/article/details/135395308"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top