HarmonyOS 动画结束回调监听不到

HarmonyOS
4天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
fox280

可以用animateTo定义动画参数,其中的onFinish可以设置。

参考文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-transition-animation-component-V5

import { promptAction } from '@kit.ArkUI';

@Entry
@Component
struct Index {
  @State showEvaluateComponent2: boolean = false;

  aboveToAppear() {
    console.log('6666')
  }

  build() {
    Column() {
      Text("button") {
      }.width(100).height(100).onClick(() => {
        animateTo({ duration: 200 }, () => {
          // 第一张图的TransitionEffect包含了animation,transition的动画参数由TransitionEffect指定
          // 第二张图的TransitionEffect不包含animation,transition的动画参数由animateTo指定
          this.showEvaluateComponent2 = !this.showEvaluateComponent2;

          promptAction.showToast({
            message: "动画结束"
          })
        });
      })

      if (this.showEvaluateComponent2) {
        Text("动画") {
        }
        .width(100)
        .height(100)
        .backgroundColor(Color.Green)

        .transition(
          TransitionEffect.asymmetric(
            TransitionEffect.move(TransitionEdge.BOTTOM).animation({ duration: 500, curve: Curve.EaseIn }),
            TransitionEffect.move(TransitionEdge.BOTTOM).animation({
              duration: 200,
              curve: Curve.EaseOut,
              onFinish: () => {
                promptAction.showToast({
                  message: "动画结束"
                })
              },
              finishCallbackType: FinishCallbackType.REMOVED
            })
          )
        )
        .animation({
          duration: 200, curve: Curve.EaseOut, onFinish: () => {
            promptAction.showToast({
              message: "动画结束"
            })
          }
        })
      }
    }
    .height('100%')
    .width('100%')
  }
}
分享
微博
QQ
微信
回复
4天前
相关问题
HarmonyOS 属性动画怎么监听调?
306浏览 • 1回复 待解决
如何监听Slider滑动结束
425浏览 • 1回复 待解决
HarmonyOS中animateTo如何结束动画
831浏览 • 2回复 待解决
HarmonyOS 位置权限变更监听调问题
62浏览 • 1回复 待解决
lottile动画加载完成调不调用
1004浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人