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

news2024/11/19 19:39:52

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

目录

一,定义

二,开发布局

三,对齐方式

3.1 TopStart顶部起始端 

3.2 Top顶部横向居中

3.3 TopEnd顶部尾端

3.4 Start起始端纵向居中

3.5 Center横向和纵向居中

3.6 End尾端纵向居中

3.7 BottomStart底部起始端

3.8 Bottom底部横向居中

3.9 BottomEnd底部尾端

四,Z序控制

一,定义

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

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

二,开发布局

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

@Entry
@Component
struct StackTest {

  build() {
    Stack(){
      Column(){}.width('90%').height('90%').backgroundColor('#ff2')
      Text('text').width('60%').height('60%').backgroundColor('#f23')
      Button('button').width('30%').height('30%').backgroundColor('#ff8ff3eb').fontColor('#000')
    }.width('100%')
    .height('100%')
  }
}

三,对齐方式

3.1 TopStart顶部起始端 

@Entry
@Component
struct StackTest {

  build() {
    Stack({alignContent:Alignment.TopStart}){
      Column(){}.width('90%').height('90%').backgroundColor('#ff2')
      Text('text').width('60%').height('60%').backgroundColor('#f23')
      Button('button').width('30%').height('30%').backgroundColor('#ff8ff3eb').fontColor('#000')
    }.width('100%')
    .height('100%')
  }
}

3.2 Top顶部横向居中

@Entry
@Component
struct StackTest {

  build() {
    Stack({alignContent:Alignment.Top}){
      Column(){}.width('90%').height('90%').backgroundColor('#ff2')
      Text('text').width('60%').height('60%').backgroundColor('#f23')
      Button('button').width('30%').height('30%').backgroundColor('#ff8ff3eb').fontColor('#000')
    }.width('100%')
    .height('100%')
  }
}

3.3 TopEnd顶部尾端

@Entry
@Component
struct StackTest {

  build() {
    Stack({alignContent:Alignment.TopEnd}){
      Column(){}.width('90%').height('90%').backgroundColor('#ff2')
      Text('text').width('60%').height('60%').backgroundColor('#f23')
      Button('button').width('30%').height('30%').backgroundColor('#ff8ff3eb').fontColor('#000')
    }.width('100%')
    .height('100%')
  }
}

3.4 Start起始端纵向居中

@Entry
@Component
struct StackTest {

  build() {
    Stack({alignContent:Alignment.Start}){
      Column(){}.width('90%').height('90%').backgroundColor('#ff2')
      Text('text').width('60%').height('60%').backgroundColor('#f23')
      Button('button').width('30%').height('30%').backgroundColor('#ff8ff3eb').fontColor('#000')
    }.width('100%')
    .height('100%')
  }
}

3.5 Center横向和纵向居中

@Entry
@Component
struct StackTest {

  build() {
    Stack({alignContent:Alignment.Center}){
      Column(){}.width('90%').height('90%').backgroundColor('#ff2')
      Text('text').width('60%').height('60%').backgroundColor('#f23')
      Button('button').width('30%').height('30%').backgroundColor('#ff8ff3eb').fontColor('#000')
    }.width('100%')
    .height('100%')
  }
}

3.6 End尾端纵向居中

@Entry
@Component
struct StackTest {

  build() {
    Stack({alignContent:Alignment.End}){
      Column(){}.width('90%').height('90%').backgroundColor('#ff2')
      Text('text').width('60%').height('60%').backgroundColor('#f23')
      Button('button').width('30%').height('30%').backgroundColor('#ff8ff3eb').fontColor('#000')
    }.width('100%')
    .height('100%')
  }
}

3.7 BottomStart底部起始端

@Entry
@Component
struct StackTest {

  build() {
    Stack({alignContent:Alignment.BottomStart}){
      Column(){}.width('90%').height('90%').backgroundColor('#ff2')
      Text('text').width('60%').height('60%').backgroundColor('#f23')
      Button('button').width('30%').height('30%').backgroundColor('#ff8ff3eb').fontColor('#000')
    }.width('100%')
    .height('100%')
  }
}

3.8 Bottom底部横向居中

@Entry
@Component
struct StackTest {

  build() {
    Stack({alignContent:Alignment.Bottom}){
      Column(){}.width('90%').height('90%').backgroundColor('#ff2')
      Text('text').width('60%').height('60%').backgroundColor('#f23')
      Button('button').width('30%').height('30%').backgroundColor('#ff8ff3eb').fontColor('#000')
    }.width('100%')
    .height('100%')
  }
}

3.9 BottomEnd底部尾端

@Entry
@Component
struct StackTest {

  build() {
    Stack({alignContent:Alignment.BottomEnd}){
      Column(){}.width('90%').height('90%').backgroundColor('#ff2')
      Text('text').width('60%').height('60%').backgroundColor('#f23')
      Button('button').width('30%').height('30%').backgroundColor('#ff8ff3eb').fontColor('#000')
    }.width('100%')
    .height('100%')
  }
}

四,Z序控制

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

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

@Entry
@Component
struct StackTest {

  build() {
    Stack({alignContent:Alignment.Start}){
      Column() {
        Text('袁震1').textAlign(TextAlign.End).fontSize(20)
      }.width(100).height(100).backgroundColor(0xffd306)

      Column() {
        Text('袁震2').fontSize(20)
      }.width(150).height(150).backgroundColor(Color.Pink)

      Column() {
        Text('袁震3').fontSize(20)
      }.width(200).height(200).backgroundColor(Color.Grey)
    }.width('100%')
    .height('100%')
  }
}

因为袁震3在最上面,且大于袁震1和袁震2,所以只显示袁震3

然后改变Z序:

@Entry
@Component
struct StackTest {

  build() {
    Stack({alignContent:Alignment.Start}){
      Column() {
        Text('袁震1').textAlign(TextAlign.End).fontSize(20)
      }.width(100).height(100).backgroundColor(0xffd306).zIndex(2)

      Column() {
        Text('袁震2').fontSize(20)
      }.width(150).height(150).backgroundColor(Color.Pink).zIndex(1)

      Column() {
        Text('袁震3').fontSize(20)
      }.width(200).height(200).backgroundColor(Color.Grey)
    }.width('100%')
    .height('100%')
  }
}

这样就都显示出来了

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

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

相关文章

5.2 Android BCC环境搭建(adeb版,下)

五,运行adeb shell adeb shell 其实这个配置比较简单,也就是5.1中的第三节“adeb prepare --full“和该节的”adeb shell",就可以连接我们的android设备,在android设备中或执行bcc工具,来对我们的android环境进行hook了。 六,其他指令 6.1 从开发机移除adeb adeb…

顶级Web应用程序测试工具列表

今天主要列举Web应用程序的工具。 今天的列表仅仅提供索引功能,具体要使用的同学,可以自行搜索哦。 通过web应用程序测试,在web应用程序公开发布之前,会发现网站功能、安全性、可访问性、可用性、兼容性和性能等问题。 Web应用程…

繁花的范总-UMLChina建模知识竞赛第5赛季第3轮

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先答对前3题,即可获得本轮优胜。 如果有第4题,第4题为附加题&am…

基于SSM的法律咨询系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

代码随想录 Leetcode242. 有效的字母异位词

题目&#xff1a; 代码&#xff08;首刷看解析 2024年1月14日&#xff09;&#xff1a; class Solution { public:bool isAnagram(string s, string t) {int hash[26] {0};for(int i 0; i < s.size(); i) {hash[s[i] - a];}for(int i 0; i < t.size(); i) {hash[t[i]…

第十六章 i18n国际化

第十六章 i18n国际化 1.什么是i18n国际化2.i18n国际化三要素介绍3.i18n国际化基础示例4.通过请求头实现国际化5.通过语言类型选择实现国际化6.通过JSTL标签库fmt实现国际化 1.什么是i18n国际化 2.i18n国际化三要素介绍 3.i18n国际化基础示例 如果我要准备一个国际化的信息&…

Windows10下 tensorflow-gpu 配置

越来越多的的人入坑机器学习&#xff0c;深度学习&#xff0c;tensorflow 作为目前十分流行又强大的一个框架&#xff0c;自然会有越来越多的新人&#xff08;我也刚入门&#xff09;准备使用&#xff0c;一般装的都是 CPU 版的 tensorflow&#xff0c;然而使用 GPU 跑 tensorf…

初始化数组

一、静态初始化格式&#xff1a; 数据类型[ ] 数组名 new 数据类型[ ]{元素1&#xff0c;元素2&#xff0c;元素3......} 等号后面的new 数据类型可以省略 注意&#xff1a;什么类型的数组只能存放什么类型的数据 直接打印a或b会显示其地址 数组的元素个数&#xff1a;arr…

【JAVA】哪些集合类是线程安全的

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 Vector&#xff1a; HashTable&#xff1a; Collections.synchronizedList()、Collections.synchronizedSet()、Collections.syn…

【Python小技巧】安装ImageMagick配置环境变量解决moviepy报错问题

文章目录 前言一、报错ImageMagick 找不到二、解决步骤1. 安装ImageMagick2. 配置IMAGEMAGICK_BINARY环境变量 总结 前言 抽空玩玩moviepy&#xff0c;结果合成视频时报错&#xff0c;看着网上的解决办法&#xff0c;真是复杂&#xff0c;这里就给出个简单便捷的方法。 一、报…

架构师-软件系统架构图学习总结

--- 后之视今&#xff0c;亦犹今之视昔&#xff01; 目录 早期系统架构图 早期系统架构视图 41视图解读 41架构视图缺点 现代系统架构图的指导实践 业务架构 例子 使用场景 画图技巧 客户端架构、前端架构 例子 使用场景 画图技巧 系统架构 例子 定义 使用场…

ES自动补全

安装IK分词器 要实现根据字母做补全&#xff0c;就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的拼音分词插件。地址&#xff1a;GitHub - medcl/elasticsearch-analysis-pinyin: This Pinyin Analysis plugin is used to do conversion between Chinese characte…

Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能

文章目录 一、实战概述二、实战步骤&#xff08;一&#xff09;创建数据库&#xff08;二&#xff09;创建用户表&#xff08;三&#xff09;后端项目引入数据库1、添加相关依赖2、用户实体类保持不变3、编写应用配置文件4、创建用户映射器接口5、创建用户服务类6、修改登录控制…

LeetCode讲解篇之216. 组合总和 III

文章目录 题目描述题解思路题解代码 题目描述 题解思路 使用递归回溯算法&#xff0c;当选择数字num后&#xff0c;在去选择大于num的合法数字&#xff0c;计算过程中的数字和&#xff0c;直到选择了k次&#xff0c;如果数组和等于n则加入结果集 从1开始选择数字&#xff0c;直…

【一个中年程序员的独白】

一个中年程序员的独白 从大四开启程序工作的大门大四与实习梦想与现实毕业论文 从大四开启程序工作的大门 2009 年&#xff0c;我在一所在当地还算小有名气的本科院校读大四。大四专业课很少&#xff0c;准确地应该是没有课了。学校组织各种招聘会&#xff0c;但是好多大厂&am…

高级分布式系统-第6讲 分布式系统的容错性--进程的容错

分布式系统的容错原则既适用于硬件&#xff0c; 也适用于软件。 两者的主要区别在于硬件部件的同类复制相对容易&#xff0c; 而软件组件在运行中的同类复制&#xff08; 进程复制&#xff09; 涉及到更为复杂的分布式操作系统的容错机制。 以下是建立进程失效容错机制的一些基…

点击随机红点的简单游戏(pygame)

import pygame import sys import random# 初始化 Pygame pygame.init()# 设置窗口大小 width, height 800, 600 screen pygame.display.set_mode((width, height)) pygame.display.set_caption("Click the Red Dot")# 定义颜色 black (0, 0, 0) red (255, 0, 0)…

XCTF:hello_pwn[WriteUP]

使用checksec查看ELF文件信息 checksec 4f2f44c9471d4dc2b59768779e378282 这里只需要注意两个重点&#xff1a; Arch&#xff1a;64bit的文件&#xff0c;后面写exp的重点 Stack&#xff1a;No canary found 没有栈溢出保护 使用IDA对ELF文件进行反汇编 双击左侧的函数栏…

推荐github热榜项目_crewAI

1 项目地址 https://github.com/joaomdmoura/crewAI 2 功能 通过设置多个智能体&#xff0c;协同解决问题&#xff0c;以处理复杂任务&#xff1b;这种方法的实现方式是将一个任务的输出作为另一个任务的输入。它的优势在于小而有效&#xff0c;原理直观易懂&#xff0c;而且…

window中安装Apache http server(httpd-2.4.58-win64-VS17)

windows中安装Apache http server(httpd-2.4.58-win64-VS17) 1、下载windows版本的的httpd, https://httpd.apache.org/docs/current/platform/windows.html#down 这里选择的是Apache Lounge编译的版本 https://www.apachelounge.com/download/ 2、解压到指定目录&#xff0c;这…