HarmonyOS 鸿蒙Next 转场动画结束回调问题
HarmonyOS 鸿蒙Next 转场动画结束回调问题
新增的转场动画回调,TransitionFinishCallback,发现这个回调之后,之前的转场动画就没有了,为什么?
@Component
@Entry
export struct VipWebViewHalf {
private url = '替换自己的url';
headerHeight = 40
closeIconWH = 16
@State isPresent: boolean = true;
animationDuration: number = 200;
build() {
NavDestination() {
if (this.isPresent) {
Stack() {
Column() {
Row() {
Text('正在使用以下会员权益')
.fontSize(18)
.fontWeight(FontWeight.Bold)
.fontColor('#191919')
Image($r('app.media.vip_pop_close'))
.width(this.closeIconWH)
.height(this.closeIconWH)
.position({ left: 16, top: (this.headerHeight - this.closeIconWH) / 2 })
.onClick(() => {
this.isPresent = false;
/// 动画完成之后,再POP
setTimeout(() => {
RouterModule.pop(RouterNameConstants.ENTRY_HAP);
}, this.animationDuration + 50)
})
}
.height(this.headerHeight)
.backgroundColor('#ffffff')
.width('100%')
.borderRadius({ topLeft: 12, topRight: 12 })
.justifyContent(FlexAlign.Center)
VipWebView({ loadUrl: this.url })
.layoutWeight(1)
Blank().height(40)
.backgroundColor('#ffffff')
}
.height('80%')
}
.transition(TransitionEffect.translate({ y: 1000 })
.animation({ curve: Curve.LinearOutSlowIn, duration: this.animationDuration }),
/// 去掉这个回调,有动画效果;加上回调,就没有动画效果了,为什么?
// (transitionIn) => {
// console.info("transition finish, transitionIn:" + transitionIn);
// }
)
.align(Alignment.BottomEnd)
.height('100%')
}
}
.backgroundColor('#2f000000')
.hideTitleBar(true)
.mode(NavDestinationMode.DIALOG)
}
}
更多关于HarmonyOS 鸿蒙Next 转场动画结束回调问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
奇怪了,我直接粘贴你的代码运行,没有发现你描述的问题。
我用的测试真机系统是最新版本的,兄弟你升级一波测试真机的版本再试试,应该在新版本是ok的。
更多关于HarmonyOS 鸿蒙Next 转场动画结束回调问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对HarmonyOS(鸿蒙)Next转场动画结束回调问题,以下是专业且直接的回答:
在HarmonyOS中,若要实现转场动画结束后的回调处理,你通常需要利用系统提供的动画监听器机制。具体而言,可以通过设置动画监听器(AnimationListener)来捕获动画结束事件。在动画监听器中,你可以重写onAnimationEnd
方法来处理动画结束后的逻辑。
对于Next转场动画,如果它遵循了HarmonyOS的动画框架,你应该能够在动画实例上设置监听器。确保你的动画对象支持监听器接口,并在动画配置时正确添加。
此外,还需注意以下几点:
- 确保动画对象正确初始化并启动。
- 验证监听器是否已被正确添加到动画对象上。
- 检查动画是否因某些条件(如被打断)而提前结束,这可能会影响回调的触发。
如果以上步骤均正确无误,但回调仍未如预期触发,可能是动画框架的内部问题或特定条件下的异常行为。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html