HarmonyOS鸿蒙Next中使用systemTransition.None关闭页面转场动画,pop此页面再push其他页面时会有延迟现象
HarmonyOS鸿蒙Next中使用systemTransition.None关闭页面转场动画,pop此页面再push其他页面时会有延迟现象 当某个页面(这里为页面2)的systemTransition属性设置为None时:
@Component
struct Page02 {
pathStack: NavPathStack | undefined = undefined;
build() {
NavDestination()
...
.title('页面2')
.backgroundColor('#ffffdbdb')
.systemTransition(NavigationSystemTransitionType.NONE)
.onReady((context: NavDestinationContext) => {
this.pathStack = context.pathStack;
})
}
}
如果在页面2里先pop再push一个页面3,会发现页面2会停留一会然后跳转到页面3,具体操作如下:
Button(`pop, push Page03 (normal)`)
.width('80%')
.margin({ top: 10, bottom: 10 })
.onClick(() => {
this.pathStack?.pop();
this.pathStack?.pushPath({ name: 'Page03' });
})
效果如下:
这个场景可以使用NEW_INSTANCE
来规避,有了NEW_INSTANCE
,即使跳转后栈顶页面不在栈中,跳转也会执行push动画。
在push动画中,新的栈顶页面(这里为页面3)会一直处于最上层,而原先的栈顶页面(这里为页面2)会被新的栈顶页面遮住,这样视觉效果就是只有页面3在做push动画,示例如下:
Button(`pop, push Page03 (normal)`)
.width('80%')
.margin({ top: 10, bottom: 10 })
.onClick(() => {
this.pathStack?.pop();
this.pathStack?.pushPath({ name: 'Page03' }, { launchMode: LaunchMode.NEW_INSTANCE });
})
效果如下:
更多关于HarmonyOS鸿蒙Next中使用systemTransition.None关闭页面转场动画,pop此页面再push其他页面时会有延迟现象的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,使用systemTransition.None
关闭页面转场动画后,pop
当前页面再push
其他页面时出现延迟现象,可能是由于系统在处理页面切换时缺少动画过渡,导致页面渲染和切换逻辑未能及时同步。建议检查页面生命周期管理和资源释放情况,确保页面切换时不会因资源占用或渲染阻塞导致延迟。
更多关于HarmonyOS鸿蒙Next中使用systemTransition.None关闭页面转场动画,pop此页面再push其他页面时会有延迟现象的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html