Color.Transparent 引起的 NavDestination 页面跳转卡顿 (HarmonyOS 鸿蒙Next)

Color.Transparent 引起的 NavDestination 页面跳转卡顿 (HarmonyOS 鸿蒙Next) 卡顿现象发生在登录页的协议页面,

首页跳登录页,登录页跳协议页都用了 this.entryHapRouter.pushPathByName

首页: @StorageLink ('entryHapRouter') entryHapRouter :NavPathStack = new NavPathStack();

else if(name==='QuickLoginPage'){ QuickLoginPage() }

登录页:

@Component
export struct QuickLoginPage {
  ......
  ......
  else if(item.tag === QuickLoginPage.PRIVACY_TAG){
    this.entryHapRouter.pushPathByName('PrivacyProtectPage',QuickLoginPage.USER_AUTHENTICATION_PROTOCOL)//跳转
  }
}

PrivacyProtectPage页:

build() {
  Row() {
    NavDestination() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    //.backgroundImage($r("app.media.Login"))
    .width("100%")
    .height("100%")
    .backgroundColor(Color.Transparent)//发现这里会引起卡顿
  }
}

这里只要加上 .backgroundColor(Color.Transparent),那么真机测试的时候就会有卡顿。


更多关于Color.Transparent 引起的 NavDestination 页面跳转卡顿 (HarmonyOS 鸿蒙Next)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

加个背景透明色就会卡顿,听着感觉有点玄幻,搞个最小demo提个工单看看吧,不然估计看不出来啥问题。

更多关于Color.Transparent 引起的 NavDestination 页面跳转卡顿 (HarmonyOS 鸿蒙Next)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


客户支持工程师
03月10日 10:30:30

尊敬的开发者,您好,

关于您的反馈的问题,
规格如此,设置透明就是会将下层的动画展示出来,这里目前只能通过自定义跳转动画来实现。

也可以把动画设置为false来规避

this.entryHapRouter.pushPathByName('PrivacyProtectPage',null,false)

合作愉快。
华为开发者联盟

也不错卡顿吧老铁,这个动画本来就是左侧滑出,因为你设置了背景是透明,视觉上是这种效果。

视频看卡顿很明显,和正常左滑的效果不一样,但是上传不了视频。

那你弄个最小demo,提个工单吧。

在HarmonyOS鸿蒙Next中,Color.Transparent 可能导致 NavDestination 页面跳转时出现卡顿问题。这是由于 Color.Transparent 会触发额外的渲染操作,尤其是在页面切换时,系统需要处理透明背景的绘制和合成,增加了渲染负担,从而导致性能下降。建议在 NavDestination 跳转时避免使用 Color.Transparent,或者优化页面渲染逻辑,减少不必要的透明效果处理。

回到顶部