HarmonyOS 鸿蒙Next NavDestinationMode为DIALOG时,如何支持到页面跳转时的转场动画

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

HarmonyOS 鸿蒙Next NavDestinationMode为DIALOG时,如何支持到页面跳转时的转场动画

NavDestinationMode为DIALOG时,如何支持到页面跳转时的转场动画

相关文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-navdestination#navdestinationmode%E6%9E%9A%E4%B8%BE%E8%AF%B4%E6%98%8E-11

如文档中所述:进出页面栈不影响下层NavDestination的生命周期,不支持系统转场动画,请问如何才能支持到,经测试在Page中实现pageTransition() 无效果


更多关于HarmonyOS 鸿蒙Next NavDestinationMode为DIALOG时,如何支持到页面跳转时的转场动画的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

1 pageTransition 不支持Navigation 。正常的也不行吧.

2 可以在customNavContentTransition 设置,但是很麻烦。

3 我用的办法

pushPathByName('dialog', null, false)  重点是这个false,强制不使用动画

然后 dialog的NavDestiontion.onReady里面,开始进场动画。NavDestiontion.onBackPress里面 拦截返回,开始退场,pop(false) .

所以过程是这样的,push(false) , 这时候立刻展示dialog第一帧(半透明/全透明 background就行)。然后onReady里面animateTo 把内容展示出来。返回的时候,onBackPress 做animateTo 把内容退场,然后留下半透明/全透明 background。onimateTo.onFinsh的时候 pop(false).就是直接干掉dialog。

更多关于HarmonyOS 鸿蒙Next NavDestinationMode为DIALOG时,如何支持到页面跳转时的转场动画的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS中,当NavDestinationMode设置为DIALOG时,要实现页面跳转时的转场动画,可以通过以下方式实现:

  1. 定义动画资源:首先,在resources目录下创建动画资源文件,包括进入和退出的动画效果。例如,创建enter_anim.xmlexit_anim.xml,定义所需的动画属性。

  2. 设置动画资源到Dialog页面:在定义Dialog页面的布局或配置中,指定进入和退出动画。如果是通过Intent启动Dialog页面,可以通过IntentaddFlags方法添加动画效果标识,但更推荐在XML布局文件中直接指定动画资源。

  3. 在代码中应用动画:在启动Dialog页面的代码中,通过页面跳转API(如PageAbilitystartAbilityForResult),确保动画资源被正确加载和应用。如果动画资源没有生效,检查资源文件路径和命名是否正确,以及是否在正确的地方进行了引用。

  4. 测试和调整:运行应用,观察Dialog页面跳转时的动画效果,根据需要进行调整和优化。

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

回到顶部