在Index页面跳转PageOne页面的同时隐藏了导航页(hideNavBar),但是在PageOne页面返回上一页时,为什么会出现白屏的情况?
// Index.ets
@Entry
@Component
struct Index {
@State hideNavBar: boolean = false
private pageStack: NavPathStack = new NavPathStack()
build() {
Navigation(this.pageStack) {
Column() {
Button('跳转PageOne,隐藏NavBar')
.onClick(() => {
this.hideNavBar = true
this.pageStack.replacePath({
name: 'PageOne'
})
})
}
.height('100%')
.justifyContent(FlexAlign.Center)
}
.hideNavBar(this.hideNavBar)
.hideTitleBar(true)
.hideBackButton(true)
}
}
// PageOne.ets
@Builder
function PageOneBuilder() {
PageOne()
}
@Component
export struct PageOne {
pageStack: NavPathStack | null = null
build() {
NavDestination() {
Column() {
Button('返回上一页')
.onClick(() => {
// 这里返回上一页
this.pageStack?.pop?.()
})
}.height('100%')
}
.hideTitleBar(true)
.onReady((ctx: NavDestinationContext) => {
this.pageStack = ctx.pathStack
})
}
}
api介绍:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-navigation-navigation-V5
白屏的情况是隐藏了导航页Navigation导致 hideNavBar(true),设置为false回去就能看到上一个界面的导航页按钮。可以在Navigation上加一个button组件,在返回即使隐藏了Navigation也能看到button组件。具体使用再参考下api文档。