当前位置: 首页 > ai >正文

入门版 鸿蒙 组件导航 (Navigation)

入门版 鸿蒙 组件导航 (Navigation)

注意:使用 DevEco Studio 运行本案例,要使用模拟器,千万不要用预览器,预览器看看 Navigation 布局还是可以的

  1. 效果:点击首页(Index)跳转到页面(MainPage)
  2. 先写 Index 和 MainPage 这两个页面
  3. 路由相关配置

Index 和 MainPage 两个页面,点击这个两个页面可以互相跳转

// src/main/ets/pages/Index.ets
@Entry
@Component
struct Index {// 创建导航路径栈实例,用于管理页面跳转历史pageStack: NavPathStack = new NavPathStack()build() {// 使用Navigation组件作为导航容器,传入pageStack管理路由Navigation(this.pageStack) {Column() {}.width('100%').height('100%').backgroundColor(Color.Blue).onClick(() => {// 击时压入名为"MainPage"的新页面到路径栈this.pageStack.pushPathByName("MainPage", null);})}}
}
// src/main/ets/pages/MainPage.ets
// 跳转页面入口函数
@Builder
export function MainPageBuilder() {MainPage()
}@Component
struct MainPage {pageStack: NavPathStack = new NavPathStack()build() {// 定义导航目标页面的容器NavDestination() {}.width('100%').height('100%').backgroundColor(Color.Brown).title('MainPage').onClick(() => {// 清空导航路径栈(用于返回首页)this.pageStack.clear()})// 页面就绪回调onReady.onReady((context: NavDestinationContext) => {// 从上下文中获取路径栈实例(需确保与父组件共享同一个实例)this.pageStack = context.pathStack})}
}

路由相关的配置

在跳转目标模块的配置文件 module.json5 添加路由表配置

// src/main/module.json5{"module" : {"routerMap": "$profile:route_map"}}

添加完路由配置文件地址后,需要在工程 resources/base/profile 中创建 route_map.json 文件

// src/main/resources/base/profile/router_map.json
{"routerMap": [{"name": "MainPage","pageSourceFile": "src/main/ets/pages/MainPage.ets","buildFunction": "MainPageBuilder","data": {"description": "this is MainPage"}}]
}
// src/main/resources/base/profile/main_pages.json
{"src": ["pages/Index"]
}
http://www.xdnf.cn/news/2693.html

相关文章:

  • 游戏打击感实现
  • frp内网穿透的基础使用
  • 如何选择靠谱的软件测试外包公司?软件测试外包需要多少费用和时间?
  • Python抽象类:ABC模块的优雅之道与手动实现的隐性陷阱
  • QT采用mqtt进行通信(17.1)
  • 【JavaScript】if语句
  • 云服务器主动防御策略与自动化防护(下)
  • QgraphicsView异步线程加载地图瓦片
  • 【LInux网络】数据链路层 - 深度理解以太网和APR协议
  • gdb 源码安装
  • 软考-软件设计师中级备考 5、数据结构 树和二叉树
  • Improving Deep Learning For Airbnb Search
  • linux常用操作命令
  • 小草GrassRouter多卡聚合路由器聚合卫星、MESH网络应用解决方案
  • Prompt
  • 多元复合函数求导的三种情况
  • STM32 ADC模数转换器
  • 企业用电管理革新利器 —— Acrel-3000 电能管理系统应用解析
  • SpringBoot 接口国际化i18n 多语言返回 中英文切换 全球化 语言切换
  • 群创5.6寸TFT液晶屏AT056TN53-5.6寸显示模组
  • nginx.exe打不开或者打开后浏览器显示连接出错
  • Qt开发环境的安装与问题的解决(2)
  • 代码随想录算法训练营Day34 | 62.不同路径 63. 不同路径II 343.整数拆分 96.不同的二叉搜索树
  • 【Light文献速览】湖南大学超表面高阶庞加莱球偏振检测时钟技术突破
  • 02.06、回文链表
  • C# wpf
  • mysql community 8.0.23升级到8.0.42再到8.4.5
  • 架构师与高级工程师:职业差异与进阶之路
  • C++ —— 正向迭代器与反向迭代器
  • 5000元可以运行32B大模型的笔记本