鸿蒙学习-ArkTs中不那么基础的组件Stack

简介

Stack:堆叠容器,子组件按照顺序依次入栈,后一个子组件覆盖前一个子组件。

css 复制代码
Stack(value?: { alignContent?: Alignment })

可以包含子组件,从API9开始可以用于卡片内。

从简介可以看出Stack比较像Android中的帧布局FrameLayout,不同之处在于FrameLayout只能从左上角开始堆叠不能设置子组件的位置,而Stack则有一个属性,这个属性的作用就是设置子组件的位置。

属性

参数名 参数类型 必填 参数描述
alignContent Alignment 设置子组件在容器内的对齐方式。默认值:Alignment.Center

参数可选,非必填

具体使用

比如说我们要写一个如图的启动页就可以使用Stack

scss 复制代码
Stack(){
    Image($r('app.color.app_color'))
      .width('100%')
      .height('100%')
    Image($r('app.media.ic_splash'))
      .height('400vp')
      .objectFit(ImageFit.Contain)
}

如上代码,我先设置一个背景色,然后添加进一个图片,但是没传参数,就会使用默认值在中间。

我们都知道一般情况下app启动时都有广告页和跳过倒计时,如下图

那么这种效果如何实现呢:

scss 复制代码
Stack(){
    Image($r('app.color.app_color'))
      .width('100%')
      .height('100%')
    Image($r('app.media.ic_splash'))
      .height('400vp')
      .objectFit(ImageFit.Contain)
    Text() {
      Span($r('app.string.skip'))
      Span(`${this.countdown}`)
    }
    .onClick(() => this.toMainPage())
    .fontColor(Color.White)
    .fontSize('12fp')
    .backgroundColor('#4d182431')
    .width(63)
    .height(24)
    .borderRadius(10)
    .textAlign(TextAlign.Center)
    .position({
      x: '78%',
      y: 35
    })
}

我们看代码中多出来的Text就是这个按钮,它的参数position则是设置它的位置,这也就是子组件在Stack中设置位置的方法。

在实际开发中我们还会遇到一种情况那就是介绍页:简单来说就是轮播几张图然后跳转到首页,这种需求如何做呢?

这种页面我们需要用到组件Swiper,具体使用方法我们下期再讲。

如果文章中有错误之处还请大佬评论指出我看见后马上修改,我们共同进步。

相关推荐
ChinaDragon4 小时前
HarmonyOS:Web使用Dsbridge与JavaScript完成交互
harmonyos
思录Echo7 小时前
自助易AI数字人外挂技术剖析|如何解决政企智能客服的多端适配难题?
人工智能·华为·harmonyos
方白羽8 小时前
为什么 Android 非要用 Intent 传值?
android·ios·harmonyos
不爱吃糖的程序媛14 小时前
从 0 到 1:react-native-transformer-text-input 鸿蒙化适配实录
react native·transformer·harmonyos
不爱吃糖的程序媛14 小时前
React Native 三方库鸿蒙适配实战:react-native-emoji-popup(Fabric 自定义组件)从 0 到 1
react native·harmonyos·fabric
贾伟康15 小时前
【口算王|19】HarmonyOS ArkTS 回归测试实战:覆盖启动、空数据、异常输入和重复点击
软件测试·harmonyos·arkts·回归测试·hypium
贾伟康15 小时前
【句匠|09】HarmonyOS ArkTS 学习统计实战:汇总正确率、连续学习和薄弱类型
harmonyos·arkts·appstorage·学习统计·本地统计
贾伟康15 小时前
【口算王|17】HarmonyOS ArkTS 亮暗色与视觉令牌实战:集中颜色、间距和交互状态避免页面割裂
harmonyos·arkts·arkui·深色模式·ui设计
搬砖的kk15 小时前
从 0 到 1:react-native-screenshot-aware 鸿蒙适配实战(RNOH 0.84)
react native·华为·harmonyos
贾伟康15 小时前
【口算王|15】HarmonyOS ArkTS 本地状态持久化实战:让保存、删除和页面返回后的数据即时一致
harmonyos·arkts·数据持久化·状态管理·preferences