HarmonyOS 【router】当页面1禁用了exit的转场动画,push到页面2时,页面2在转场过程中会完全透明而看到页面1,直至转场动画结束

操作步骤:

1、页面1通过以下如以下代码重写pageTransition,禁用了页面的Exit时的转场动画

2、页面1通过router,push到页面2

3、页面2在转场过程中会完全透明而看到页面1,直至转场动画结束

期望:页面2在转场过程中不会变成完全透明

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

pageTransition禁用页面转场动画需要在进入页和退出页都进行设置,参考代码如下:

//main.ets
import router from '@ohos.router';

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  build() {
    Row() {
      Column() {
        Text(this.message).fontSize(50).fontWeight(FontWeight.Bold).onClick(() => {
          router.pushUrl({ url: 'pages/240115173611047_second' })
        })
      }.width('100%')
    }.height('100%').backgroundColor('#A0FF0000')
  }

  pageTransition() {
    PageTransitionEnter({ type: RouteType.None, duration: 0 })
    PageTransitionExit({ type: RouteType.None, duration: 0 })
  }
}

//second.ets
import router from '@ohos.router'

@Entry
@Component
export struct Second {
  build() {
    Column() {
      Text('Back').onClick(() => {
        router.back()
      })
    }.width('100%').height('100%').backgroundColor('#A00000FF')
  }

  pageTransition() {
    PageTransitionEnter({ type: RouteType.None, duration: 0 })
    PageTransitionExit({ type: RouteType.None, duration: 0 })
  }
}

Navigation组件适用于模块内页面切换,一次开发,多端部署场景。通过组件级路由能力实现更加自然流畅的转场体验,并提供多种标题栏样式来呈现更好的标题和内容联动效果。在一次开发,多端部署场景下,Navigation组件能够自动适配窗口显示大小,在窗口较大的场景下自动切换分栏展示效果。因此推荐使用Navigation,router后续暂不演进。Navigation进行页面跳转的使用可参考文档 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-navigation-V5

分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 页面组件转场动画
406浏览 • 1回复 待解决
如何全局设置页面转场动画
743浏览 • 1回复 待解决
如何实现动画转场效果
843浏览 • 1回复 待解决
半模态转场来实现弹框样式页面
915浏览 • 1回复 待解决
Tabs 出现/消失转场动画效果
389浏览 • 1回复 待解决
HarmonyOS 无感转场动画推荐方案
86浏览 • 1回复 待解决
请问如何去掉ability转场动画
11279浏览 • 2回复 待解决
转场动画,谁有好方案吗?
582浏览 • 1回复 待解决