鸿蒙_组件导航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%')
  }
}

运行效果如下:

相关推荐
提子拌饭1332 小时前
红细胞代偿性增殖与睡眠剥夺的对照演算引擎:基于鸿蒙Flutter的微观流体力学粒子渲染架构
flutter·华为·架构·开源·harmonyos·鸿蒙
互联网散修2 小时前
鸿蒙 ArkTS 自定义下拉刷新组件:从手势冲突到完美解决方案
华为·harmonyos
小成Coder2 小时前
UniApp 如何调用鸿蒙预加载
uni-app·harmonyos·鸿蒙
浮芷.2 小时前
Flutter 框架跨平台鸿蒙开发 - 智能家电故障诊断应用
运维·服务器·科技·flutter·华为·harmonyos·鸿蒙
小小ken2 小时前
鸿蒙模拟器提示:未开启hyper-v。运行模拟器需要开启hyper-v虚拟化支持。
华为·harmonyos·hyper-v·虚拟机
key_3_feng2 小时前
鸿蒙ArkTS电子书阅读应用开发方案
华为·harmonyos
HwJack202 小时前
HarmonyOS开发中@AnimatableExtend装饰器:把动画做成“乐高”,告别复制粘贴的痛
华为·harmonyos
浮芷.2 小时前
Flutter 框架跨平台鸿蒙开发 - 急救指南应用
学习·flutter·华为·harmonyos·鸿蒙