HarmonyOS 鸿蒙Next如何监听transition动画结束?

发布于 1周前 作者 h691938207 来自 鸿蒙OS

HarmonyOS 鸿蒙Next如何监听transition动画结束?

如何监听transition动画结束?

如下代码:

Image($r('app.media.detail_pregnant_icon_schedule'))
    .width(30)
    .height(30)
    .translate({ x: this.getThumbXPosition(), y: 0 })
    .transition(TransitionEffect.SLIDE.animation({
      curve: Curve.EaseOut,
      iterations: 1,
      playMode: PlayMode.Normal,
      onFinish: () => {
        LogUtils.info('test', `----------------------onFinish`)
      }
    }))
    .position(this.getFirstPosition())

如何监听此代码traslate结束?onfinish是无效的,据官网说:指定该TransitionEffect的动画参数。 该参数只用来指定动画参数,其入参AnimateParam的onFinish回调不生效,那么怎么监听动画的结束?有什么办法?


更多关于HarmonyOS 鸿蒙Next如何监听transition动画结束?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

TransitionEffect的animation参数只用来指定动画参数,其入参AnimateParam的onFinish回调不生效。

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

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

更多关于HarmonyOS 鸿蒙Next如何监听transition动画结束?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,监听transition动画结束通常涉及到动画框架和事件回调机制。鸿蒙系统提供了丰富的动画API,允许开发者控制动画的开始、进行和结束状态。

要监听transition动画结束,你可以利用动画监听器(AnimatorListener)来实现。以下是一个简化的步骤说明:

  1. 创建动画对象:首先,根据需求创建相应的动画对象,比如Animator或其子类。

  2. 设置动画监听器:为动画对象设置监听器,通过实现Animator.AnimatorListener接口,重写其中的onAnimationEnd(Animator animation)方法。这个方法会在动画结束时被调用。

  3. 启动动画:调用动画对象的start()方法开始动画。

示例代码框架(伪代码):

Animator animator = ...; // 创建动画对象
animator.addListener(new Animator.AnimatorListener() {
    @Override
    public void onAnimationStart(Animator animation) {}

    @Override
    public void onAnimationEnd(Animator animation) {
        // 动画结束时的处理逻辑
    }

    @Override
    public void onAnimationCancel(Animator animation) {}

    @Override
    public void onAnimationRepeat(Animator animation) {}
});
animator.start();

注意:上述代码示例为逻辑描述,实际开发中需根据鸿蒙系统的API文档调整具体实现。

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

回到顶部