HarmonyOS 中 导航器的用法

Naviagtion 用法

Navigation 官方推荐的打开新页面的组件

具体用法

在导航页添加Navigation 目标也添加NavDestination

@Entry
@Component
struct Index {

     pathStack:NavPathStack = new NavPathStack()
   build() {
    Navigation(this.pathStack){
      Column() {
       Button('跳转导航')
           .onClick(() => {
            this.navPageStack?.pushPathByName("TaskManagePage", null, 
 false)
          }
      }
      .width('100%')
      .height('100%')
    }

  }
}
配置目标路由

在module.json5配置路由信息

{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "routerMap": "$profile:router_map",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "phone",
      "tablet",
      "2in1"
    ],
    "deliveryWithInstall": true,
    "installationFree": false,
    "pages": "$profile:main_pages",
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:layered_image",
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:startIcon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ]
      }
    ],
    "extensionAbilities": [
      {
        "name": "EntryBackupAbility",
        "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets",
        "type": "backup",
        "exported": false,
        "metadata": [
          {
            "name": "ohos.extension.backup",
            "resource": "$profile:backup_config"
          }
        ],
      }
    ]
  }
}
  {
  "routerMap": [
    {
      "name": "TaskManagePage",
      "pageSourceFile": "src/main/ets/pages/TaskManagePage.ets",
      "buildFunction": "TaskManageBuilder",
      "data": {
        "description": "this is task manager"
      }
    }
  ]
}
目标页代码设置如下
@Builder
export function TaskManageBuilder() {
  TaskManagePage()
}


@Entry
@Component
struct TaskManagePage {

  navPathStack:NavPathStack = new NavPathStack()
  build() {
    NavDestination(){
      Column(){
        // 1. 顶部导航
        Header()
        // 2.任务进度卡片
        TaskStatistics({totalTask: this.totalTask, finishTask: this.finishTask})
      }
      .height('100%')
      .width('100%')
      .backgroundColor('#F1F2F3')
    }
    .onReady((context:NavDestinationContext) => {
        this.navPathStack = context.pathStack
    })

  }
}

如此设置,才能实现跳转到指定页面,这是在学习鸿蒙开发中的一点心得,与诸位共勉,希望能帮助需要的你

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容