HarmonyOS 鸿蒙Next CustomDialog是否支持自定义动画?

HarmonyOS 鸿蒙Next CustomDialog是否支持自定义动画? CustomDialog是否支持自定义动画?

2 回复

CustomDialog支持自定义动画 ,可以参考以下demo:

let anmDuration: number = 800;
// 弹窗交互
@CustomDialog
struct CustomDialogExample {
  @State showFlag: Visibility = Visibility.Visible;
  @State isAutoCancel: boolean = false;
  controller: CustomDialogController = new CustomDialogController({
    builder: CustomDialogExample({}),
    autoCancel: false
  })
  build() {
    Column() {
      Text('我是内容')
        .fontSize(20)
        .margin({ top: 10, bottom: 10 })
        .backgroundColor('#FFFFFF')
        .textAlign(TextAlign.Center)
        .height(200)
        .width('100%')
        .onClick(() => {
          this.cancel();
        })
    }
    .width('100%')
    .height('100%')
    .margin({
      bottom: -15
    })
    .onClick(() => {
      if (this.isAutoCancel) {
        this.cancel();
      }
    })
    .visibility(this.showFlag)
    // 定义进场出场转场动画效果
    .transition(TransitionEffect.OPACITY.animation({ duration: anmDuration })
      .combine(TransitionEffect.translate({ x: 0, y: 100 })))
  }
  // 延迟关闭弹窗,让自定义的出场动画显示
  cancel() {
    this.showFlag = Visibility.Hidden
    setTimeout(() => {
      this.controller.close()
    }, anmDuration)
  }
}
@Entry
@Component
struct CustomDialogUser {
  // 是否允许点击遮障层退出
  @State isAutoCancel: boolean = true;
  dialogController: CustomDialogController = new CustomDialogController({
    builder: CustomDialogExample({ isAutoCancel: this.isAutoCancel }),
    autoCancel: this.isAutoCancel,
    // 弹窗容器样式是否自定义
    customStyle: true
  })
  build() {
    Column() {
      Button('点我')
        .onClick(() => {
          this.dialogController.open()
        })
    }.width('100%').height('100%').margin({ top: 5 })
  }
}

更多关于HarmonyOS 鸿蒙Next CustomDialog是否支持自定义动画?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙的Next CustomDialog是支持自定义动画的。在鸿蒙系统中,开发者可以通过自定义Dialog的进入和退出动画来实现丰富的视觉效果。这通常涉及到对Dialog的动画资源进行配置,以及在某些情况下编写相应的动画代码。

具体来说,鸿蒙系统提供了动画资源文件(如.json格式的动画配置文件)来定义动画效果,包括动画的持续时间、插值器、属性动画等。开发者可以将这些动画资源文件应用到CustomDialog上,从而实现自定义动画效果。

此外,鸿蒙系统还允许开发者通过编程方式动态地控制Dialog的动画,比如通过调用相关的动画API来设置动画属性、监听动画事件等。这种方式提供了更高的灵活性,可以根据应用的具体需求来动态调整动画效果。

总之,HarmonyOS 鸿蒙的Next CustomDialog支持自定义动画,开发者可以通过配置动画资源文件或编写动画代码来实现丰富的动画效果。如果开发者在实现过程中遇到具体问题,可以查阅鸿蒙系统的官方文档或相关开发资料以获取更多帮助。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,

回到顶部