Flutter Navigator路由传参怎么实现
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,今天小编给大家分享一下Flutter Navigator路由传参怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有
千家信息网最后更新 2026年11月02日Flutter Navigator路由传参怎么实现
今天小编给大家分享一下Flutter Navigator路由传参怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
Flutter中的默认导航分成两种,一种是命名的路由,一种是构建路由。
一、命名路由传参
应用入口处定义路由表
class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, // 隐藏预览中的debug title: 'Flutter Demo', routes: { '/': (context) => const HomePage(), "menu": (context) => const MenuPage() }, ); }}// 定义HomePageclass HomePage extends StatelessWidget { const HomePage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text("登录"), ), body: ElevatedButton( onPressed: () async { // 实现路由跳转 var result = await Navigator.pushNamed(context, 'menu', arguments: {'name': 'title'}); print(result); }, child: const Text('登录'), ), ); }}// 定义MenuPageclass MenuPage extends StatelessWidget { const MenuPage({Key? key}) : super(key: key); @override // 接收传参 Widget build(BuildContext context) { dynamic argumentsData = ModalRoute.of(context)?.settings.arguments; return Scaffold( appBar: AppBar( title: Text('菜单' + argumentsData.toString()), ), body: ElevatedButton( onPressed: () { Navigator.pop(context, {'name': "Navigator.pop传参"}); }, child: const Text("返回"), ), ); }}二、构建路由传参
从HomePage页面跳转MenuPage页面时,携带参数
第一种方式:
// 定义HomePageclass HomePage extends StatelessWidget { const HomePage ({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text("登录"), ), body: ElevatedButton( onPressed: () { // 实现路由跳转 Navigator.push( context, MaterialPageRoute( builder: (context) => const MenuPage( title: '菜单123', ), // 需要跳转的页面 ), // 修改路由的名称、信息等 ); }, child: const Text('登录'), ), ); }}// 定义MenuPageclass MenuPage extends StatelessWidget { // 定义接收的字段 final String title; const MenuPage({Key? key, required this.title}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(title), ), body: ElevatedButton( onPressed: () { Navigator.pop(context); }, child: const Text("返回"), ), ); }}第二种方式:
// 定义HomePageclass HomePage extends StatelessWidget { const HomePage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text("登录"), ), body: ElevatedButton( onPressed: () { // 实现路由跳转 Navigator.push( context, MaterialPageRoute( builder: (context) => const MenuPage(), // 修改路由的名称、信息等 settings: const RouteSettings( name: '菜单', arguments: {"name": '123'}) // 需要跳转的页面 ), ); }, child: const Text('登录'), ), ); }}// 定义MenuPageclass MenuPage extends StatelessWidget { const MenuPage({Key? key}) : super(key: key); @override // 接收传参 Widget build(BuildContext context) { dynamic argumentsData = ModalRoute.of(context)?.settings.arguments; return Scaffold( appBar: AppBar( title: Text('菜单' + argumentsData.toString()), ), body: ElevatedButton( onPressed: () { Navigator.pop(context); }, child: const Text("返回"), ), ); }}从MenuPage页面返回HomePage页面时,携带参数
// 定义HomePageclass HomePage extends StatelessWidget { const HomePage ({Key? key}) : super(key: key);; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text("登录"), ), body: ElevatedButton( onPressed: () async { // 实现路由跳转 var result = await Navigator.push( context, MaterialPageRoute( builder: (context) => const MenuPage(), ), ); print(result); }, child: const Text('登录'), ), ); }}// 定义MenuPageclass MenuPage extends StatelessWidget { const MenuPage({Key? key}) : super(key: key); @override // 接收传参 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('菜单'), ), body: ElevatedButton( onPressed: () { Navigator.pop(context, {'name': "Navigator.pop传参"}); }, child: const Text("返回"), ), ); }}以上就是"Flutter Navigator路由传参怎么实现"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
路由
登录
页面
菜单
知识
篇文章
信息
内容
参数
名称
方式
不同
很大
入口
入口处
大部分
字段
就是
更多
知识点
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技企业
中智农互联网科技
今日互联网科技
互联网医疗科技
百单互联网科技有限公司
互联网科技股有哪些
四个字互联网科技公司取名
互联网软件和科技
厦门千工互联网科技有限公司
华中科技大学互联网的牛人
互联网金融科技公司的优势
互联网营销推广黑科技
美国互联网科技公司
从那以后互联网科技有限公司
济南小医互联网科技有限公司招聘
昆明中奇联合互联网科技
众联互联网络科技
上海互联网科技园景观
互联网科技创新方面的资料
每日互联网科技新闻
高科技互联网
互联网 科技公司
奇士达互联网科技
互联网科技小额贷款
人人互联网科技是培训
江阴互联网智能科技产品进口
产业互联网科技服务公司
互联网科技年终奖
玉溪新华互联网科技怎么选
互联网的黑科技实验室