鸿蒙应用开发中,使用Navigation时,一直返回会回到根页面,如何屏蔽?
·
Navigation 的根页面是 NavBar,可以使用 hideNavBar 来隐藏,然后将开屏页移到 NavDestination 里面,刚进入应用时,在 aboutToAppear 里 push 开屏页,然后替换成首页即可,示例如下:
@Entry
@Component
struct Index {
pathStack: NavPathStack = new NavPathStack();
......
aboutToAppear(): void {
this.pathStack.pushPath({ name: 'Page01' }, false);
setTimeout(() => {
this.pathStack.replacePath({ name: 'Page02' });
}, 3000);
}
build() {
Navigation(this.pathStack) {
}.hideNavBar(true)
.navDestination(this.pagesMap)
}
}
完整示例如下:
@Component
struct Page01 {
pathStack: NavPathStack | undefined = undefined;
build() {
NavDestination() {
Column() {
Text(`开屏广告`).fontSize(22).fontWeight(2)
}.width('100%').height('100%').justifyContent(FlexAlign.Center).alignItems(HorizontalAlign.Center)
}.title('页面1')
.onReady((context: NavDestinationContext) => {
this.pathStack = context.pathStack;
})
}
}
@Component
struct Page02 {
pathStack: NavPathStack | undefined = undefined;
build() {
NavDestination() {
Column() {
Text(`首页`).fontSize(22).fontWeight(2)
}.width('100%').height('100%').justifyContent(FlexAlign.Center).alignItems(HorizontalAlign.Center)
}.title('页面2')
.onReady((context: NavDestinationContext) => {
this.pathStack = context.pathStack;
})
}
}
@Entry
@Component
struct Index {
pathStack: NavPathStack = new NavPathStack();
@Builder
pagesMap(name: string) {
if (name == 'Page01') {
Page01()
} else if (name == 'Page02') {
Page02()
}
}
aboutToAppear(): void {
this.pathStack.pushPath({ name: 'Page01' }, false);
setTimeout(() => {
this.pathStack.replacePath({ name: 'Page02' });
}, 3000);
}
build() {
Navigation(this.pathStack) {
}.hideNavBar(true)
.navDestination(this.pagesMap)
}
}
更多推荐

所有评论(0)