鸿蒙_组件导航Navigation的基础用法

ArkUI组件导航,可以在一个页面内虚拟出多个组件导航页面,我们通过案例来测试一下基础用法:

TypeScript 复制代码
@Entry
@Component
struct TestNavigation {
  @State message: string = 'Test Navigation';
  //定义一个页面栈(用于管理页面,记录页面路径信息及访问顺序等)
  navPathStack: NavPathStack = new NavPathStack()

  //自定义构建函数(用来承载多个页面内容)
  @Builder
  builderPages(name: string) {
    if (name === 'pageOne') {
      //页面1内容要放到导航目标内
      NavDestination() {
        //可以直接罗列组件,不用再通过根节点包裹
        Text('页面1').fontColor(Color.Red)
        Text('的内容')
      }
    } else {
      //页面2内容也要放到导航目标内
      NavDestination() {
        //这个我们测试一下横向排布
        Row() {
          Text('页面2').fontColor(Color.Orange)
          Text('的内容')
        }
      }
    }
  }

  build() {
    Column() {
      Text(this.message)
        .fontSize(33)
        .fontWeight(FontWeight.Bold)
        .onClick(() => {
          this.message = 'Welcome';
        })

      //组件导航
      Navigation(this.navPathStack) {
        //这里写根页面
        Button('打开页面1', { stateEffect: true, type: ButtonType.Capsule })
          .width('80%')
          .margin(20)
          .onClick(() => {
            this.navPathStack.pushPath({ name: 'pageOne' });
          })
        Button('打开页面2', { stateEffect: true, type: ButtonType.Capsule })
          .width('80%')
          .onClick(() => {
            this.navPathStack.pushPath({ name: 'pageTwo' });
          })
      }
      .navDestination(this.builderPages)
      .border({ width: 1, color: Color.Black })
      .margin(50)
      .backgroundColor(Color.Gray)
    }
    .height('100%')
    .width('100%')
  }
}

运行效果如下:

相关推荐
用户86194177207412 小时前
uni-app 的蓝牙 API 在鸿蒙上不生效?我写了个兼容层,让老代码零改动跑起来
harmonyos
HarmonyOS_SDK3 小时前
【HarmonyOS SDK Skills】挂载 Agent Skill,轻松跑通鸿蒙应用广告变现
harmonyos
闫东阳LordGalaxy4 小时前
给小艺装上数学能力:数易 App 接入智能体 FunctionComponent 与 A2A 双通路实战
harmonyos
Dream-Y.ocean5 小时前
鸿蒙PC平台逻控 PLC 编辑器适配实战:基于 Electron 壳方案的纯 JavaScript 梯形图编程与仿真引擎开发
javascript·编辑器·harmonyos
OH_TPC7 小时前
HarmonyOS APP开发---"好物清单"购物清单App,需要用到这个库
harmonyos
贾伟康9 小时前
【鸿蒙心迹】个人开发者上架复盘:备案、合规与审核指南没写透的细节
华为·harmonyos
码间留白9 小时前
uni-app 鸿蒙离线打包:一个改动从源码到真机要穿过几条链
uni-app·鸿蒙·deveco·离线打包·uts插件
不爱学英文的码字机器10 小时前
2026鸿蒙远程控制软件完全选购指南:从入门到精通选型攻略
华为·harmonyos
贾伟康1 天前
【共创稿事节】HarmonyOS 7.0 BindContentCover全屏模态:从接入到生产验证
性能优化·实战·harmonyos·arkts·arkui
KevinChaos1 天前
声音明信片实验室 03|HarmonyOS 7.0 音频空间化:双版本试听无缝切换
harmonyos