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

Flutter基础(路由页面跳转)

基础路由表配置​

直接使用 routes 属性定义简单路由(无需传参):

MaterialApp(initialRoute: '/', // 初始页面routes: {'/': (context) => HomePage(),         // 首页'/detail': (context) => DetailPage(), // 详情页'/profile': (context) => ProfilePage(),},onUnknownRoute: (settings) =>        // 处理未定义路由MaterialPageRoute(builder: (_) => NotFoundPage()),
);

基础跳转实现​

在按钮的 onPressed 回调中调用 Navigator.pushNamed,传入当前 context 和注册的路由路径:

// 在 HomePage 的按钮跳转到详情页
ElevatedButton(onPressed: () {Navigator.pushNamed(context, '/detail'); // 使用命名路由跳转},child: Text('进入详情页'),
);// 在详情页跳转到个人页
ElevatedButton(onPressed: () {Navigator.pushNamed(context, '/profile');},child: Text('进入个人页'),
);

带参数跳转(高级用法)​

若需向目标页面传递数据(如商品ID),需结合 arguments 属性和路由解析:

步骤:

跳转时传递参数​​:

Navigator.pushNamed(context,'/detail',arguments: {'id': 1001, 'title': '商品详情'}, // 动态数据
);

​目标页面接收参数​​(需修改路由表注册方式):
使用 onGenerateRoute 替代 routes,解析参数并初始化页面。

MaterialApp(onGenerateRoute: (RouteSettings settings) {switch (settings.name) {case '/detail':final args = settings.arguments as Map<String, dynamic>; // 类型转换return MaterialPageRoute(builder: (_) => DetailPage(id: args['id'], title: args['title']),);// 其他路由...}},
);

相关文章:

  • 【Cursor黑科技AI编程实战】
  • PMO 与IPD、CMMI、项目管理什么区别和联系
  • C++扩展 - 关键字应用 - decltype
  • 中级统计师-经济学基础知识-第三章 市场失灵与分配不公及其公共治理
  • Uni-App 小程序面试题高频问答汇总
  • 【QT】QT的发展历史与介绍
  • 机器学习配置环境
  • Python实现对WPS协作群进行群消息自动推送
  • 在单片机中如何实现一个shell控制台
  • 机器学习框架(1)
  • crawl4ai crawler.arun( 超时问题
  • 安卓中静态和动态添加子 View 到容器
  • Flutter基础(FFI)
  • Docker安装MinIO
  • 碰一碰发视频/碰一碰发抖音技术--源码开发部署实现方案
  • NVIDIA 开源高性能语音识别模型:Parakeet TDT 0.6B V2 登顶 OpenASR 榜单
  • DeepSeek 桌面端 快捷键唤起小窗口 极致轻量化
  • JavaScript正则表达式之正向先行断言(Positive Lookahead)深度解析
  • 黑马python(十七)
  • 电子电气架构 --- 车载芯片SOC简介