HarmonyOS 鸿蒙Next 路由支持打开多个页面吗,像Android的startActivities

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 路由支持打开多个页面吗,像Android的startActivities

路由支持打开多个页面吗,像Android的startActivities

2 回复

可以使用Navigation中的路由栈NavPathStack,调用路由栈中的pushPath()等方法传入页面路径来实现该功能,参考文档如下:

Navigation-导航与切换-ArkTS组件-ArkUI(方舟UI框架)-应用框架 - 华为HarmonyOS开发者 (huawei.com)

文档最下方的示例中有各种使用示例可以供您参考。

以下为您提供实现上述功能的简单示例代码:

[@Component](/user/Component)
struct PageOne{
  [@Consume](/user/Consume)('pageInfos') pageInfos: NavPathStack;
  build() {
    NavDestination(){
      Column(){
        Text('我是页面1').width('100%').height('100%')
      }.width('100%').height('100%')
    }.title('pageOne')
  }
}
[@Component](/user/Component)
struct PageTwo{
  [@Consume](/user/Consume)('pageInfos') pageInfos: NavPathStack;
  build() {
    NavDestination(){
      Column(){
        Text('我是页面2').width('100%').height('100%')
      }.width('100%').height('100%')
    }.title('pageTwo')
  }
}
[@Entry](/user/Entry)
[@Component](/user/Component)
struct NavPushPathPage {
  [@Provide](/user/Provide)('pageInfos') pageInfos: NavPathStack = new NavPathStack()
  [@Builder](/user/Builder)
  PageMap(name: string) {
    if (name === 'pageOne') {
      PageOne()
    } else if (name === 'pageTwo') {
      PageTwo()
    }
  }
  build() {
    Navigation(this.pageInfos){
      Button('点击跳转页面').onClick(()=>{
        this.pageInfos.pushPath({ name: 'pageOne' })
        this.pageInfos.pushPath({ name: 'pageTwo' })
      })
    }.width('100%').height('100%')
    .title('NavIndex').navDestination(this.PageMap)
  }
}

更多关于HarmonyOS 鸿蒙Next 路由支持打开多个页面吗,像Android的startActivities的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next路由支持单个应用并行开启多个界面

HarmonyOS 鸿蒙Next采用了全新的端云垂直整合系统架构,在性能、用户体验和生态方面均有显著提升。其中,该系统支持单个应用并行开启六个界面,这一功能打破了传统操作的束缚,为用户带来了更加灵活和高效的多任务处理体验。这与Android的startActivities方法有一定的相似性,但具体实现方式和应用场景有所不同。

值得注意的是,HarmonyOS 鸿蒙Next在设备互联、用户体验和隐私安全等方面也进行了全面优化。例如,它采用了分布式技术,能够实现不同设备之间的硬件能力互助共享;同时,还加强了权限管理和文件分享的安全性,为用户隐私安全提供了坚实保障。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部