赞
踩
层叠布局通过Stack
容器组件实现位置的固定定位与层叠,容器中的子元素(子组件)依次入栈,后一个子元素覆盖前一个子元素。
@Entry @Component struct StackLayout { build() { Stack() { Column() {} .width("100%") .height(300) .backgroundColor(Color.Red) Column() {} .width("80%") .height(200) .backgroundColor(Color.Blue) Column() {} .width("60%") .height(100) .backgroundColor(Color.Pink) } } }
Stack
容器组件的特点:
Stack
容器组件的宽等于子元素中最宽的长度。Stack
容器组件的高等于子元素中最高的长度。Stack
容器组件通过alignContent
参数实现位置的相对移动。
@Entry @Component struct StackLayout { build() { // 设置对齐方式为顶部开端 Stack({alignContent: Alignment.TopStart}) { Column() {} .width("100%") .height(300) .backgroundColor(Color.Red) Column() {} .width("80%") .height(200) .backgroundColor(Color.Blue) Column() {} .width("60%") .height(100) .backgroundColor(Color.Pink) } } }
@Entry @Component struct StackLayout { build() { // 设置对齐方式为顶部中间 Stack({alignContent: Alignment.Top}) { Column() {} .width("100%") .height(300) .backgroundColor(Color.Red) Column() {} .width("80%") .height(200) .backgroundColor(Color.Blue) Column() {} .width("60%") .height(100) .backgroundColor(Color.Pink) } } }
@Entry @Component struct StackLayout { build() { // 设置对齐方式为顶部尾部 Stack({alignContent: Alignment.TopEnd}) { Column() {} .width("100%") .height(300) .backgroundColor(Color.Red) Column() {} .width("80%") .height(200) .backgroundColor(Color.Blue) Column() {} .width("60%") .height(100) .backgroundColor(Color.Pink) } } }
上述演示了 Alignment.TopStart
、Alignment.Top
、Alignment.TopEnd
三种对齐方式,其他的对齐方式大家可以用相同的方式依次测试。
Stack
容器组件中,默认的子元素的层叠是根据元素引用的先后顺序。Stack
容器中子元素显示层级关系可以通过Z序控制的zIndex
属性改变。zIndex
值越大,显示层级越高。
@Entry @Component struct StackLayout { build() { Stack() { Column() {} .width("60%") .height(100) .backgroundColor(Color.Pink) .zIndex(3) Column() {} .width("80%") .height(200) .backgroundColor(Color.Blue) .zIndex(2) Column() {} .width("100%") .height(300) .backgroundColor(Color.Red) .zIndex(1) } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。