HarmonyOS 鸿蒙Next Navigation转场自定义动画统一设置的需求

发布于 1周前 作者 itying888 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Navigation转场自定义动画统一设置的需求

Navigation转场自定义动画统一设置需求

目前Navigation可以通过customNavContentTransition来自定义的转场动画。详细链接参考:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/ts-basic-components-navigation-V13#示例3设置可交互转场动画

现在遇到一个问题,比如A、B、C页面动画都是一样的,比如是个左进右出,按上面的文档,就是修改页面的transX,具体页面代码中
.translate({x:this.transX})
如果A、B、C都是这个动画,要在以上页面都做好注册、反注册、申明transX,然后调用.translate({x:this.transX})。理论上这种相同动画,比如业务90%都是这个动画,想设置为默认动画,那只想配置一次。
可以封装成一个默认动画,但是因为和页面属性(比如transX 、opacity等)值改变强关联了,好像必须要在每个page中都写上一段相同的代码(而且组件又不支持继承)。
需求:
是否考虑提供一种统一的配置,可以和页面不强关联。类似现在的

pageTransition() {
PageTransitionEnter({ duration: 200 });
PageTransitionExit({ duration: 200 });
} 


至少看起来了,不会直接需要涉及到页面的各种属性。

比如页面是默认的自定义动画,那我可以不在页面中写代码,在customNavContentTransition中,判断下页面没有单独注册过动画,那我就走默认的自定义动画。

ps:比如pageTransition是咋实现的?


更多关于HarmonyOS 鸿蒙Next Navigation转场自定义动画统一设置的需求的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复
navigation当前暂不支持全局设置页面转场动画。
另外,pageTransition的页面转场能力依赖router,而当前router能力不在演进。因此也不推荐开发者使用pageTransition的页面转场。为了实现更好的转场效果,还是推荐使用Navigation组件和模态转场。

更多关于HarmonyOS 鸿蒙Next Navigation转场自定义动画统一设置的需求的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


现在系统API是没有的,如果是兄弟okr/kpi任务,那我建议用aop ,动态编译。像HMRouter那种,都是把NavDestination动态编译的。那么写几个task,把onReady的代码编编译进去问题也不大。

在HarmonyOS鸿蒙系统中,针对Next Navigation转场自定义动画的统一设置,可以通过修改系统提供的转场动画资源或者通过编程方式实现。

具体步骤如下:

  1. 资源文件修改

    • 在项目的resources目录下,找到或创建anim文件夹。
    • anim文件夹中,定义自定义的转场动画资源文件,如enter_anim.xmlexit_anim.xml,指定动画效果。
    • 确保动画资源文件符合HarmonyOS动画资源定义规范。
  2. 编程实现

    • 在页面跳转代码中,使用Intent进行页面跳转时,通过IntentsetFlags方法设置转场动画标志。
    • 例如,使用Intent.FLAG_ACTIVITY_CUSTOM_ANIMATION标志,并通过putExtra方法传入自定义动画资源文件的ID。
    • 示例代码:intent.putExtra(Intent.EXTRA_ENTER_ANIMATION, R.anim.enter_anim); intent.putExtra(Intent.EXTRA_EXIT_ANIMATION, R.anim.exit_anim);
  3. 统一设置

    • 可以在应用的全局配置文件中(如config.json),或者通过继承的BaseActivity等统一处理页面跳转逻辑的地方,集中设置转场动画,以实现全局统一效果。

请注意,以上方法依赖于HarmonyOS系统提供的API和资源配置机制。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部