尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Flutter第十六节-----路由管理(2)

Flutter第十六节-----路由管理(2)
📅 发布时间:2026/7/23 13:12:06

一.命名路由传递参数

●作用:通过路由传递参数是实现页面间数据通信的常用方式
●传递参数(命名路由):Navigator.pushNamed(context,地址,arguments:{参数)
●接收参数(命名路由):ModalRoute.of(context)?.settings.arguments
●接收时机:initState获取不到路由参数,放置在Future.microtask(异步微任务)中

import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; void main(List<String> args) { runApp(MainPage()); } class MainPage extends StatelessWidget { const MainPage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( home: ListPage(), initialRoute: "/list", routes: { "/list": (context) => ListPage(), "/detail": (context) => DetailPage(), }, ); } } class ListPage extends StatefulWidget { ListPage({Key? key}) : super(key: key); @override _ListPageState createState() => _ListPageState(); } class _ListPageState extends State<ListPage> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text("列表页")), body: ListView.builder( itemCount: 100, padding: EdgeInsets.all(10), itemBuilder: (BuildContext context, int index) { return GestureDetector( //用于识别用户的按下 onTap: () { Navigator.pushNamed( context, "/detail", arguments: {"id": index + 1}, ); // Navigator.push( // context, // MaterialPageRoute(builder: (context) => DetailPage()), // ); }, child: Container( height: 100, margin: EdgeInsets.only(top: 10), color: Colors.blue, alignment: Alignment.center, child: Text( '列表项${index + 1}', style: TextStyle(color: Colors.white, fontSize: 16), ), ), ); }, ), ); } } class DetailPage extends StatefulWidget { DetailPage({Key? key}) : super(key: key); @override _DetailPageState createState() => _DetailPageState(); } class _DetailPageState extends State<DetailPage> { @override String _id = ""; void initState() { // TODO: implement initState super.initState(); Future.microtask(() { if (ModalRoute.of(context) != Null) { Map<String, dynamic> params = ModalRoute.of(context)!.settings.arguments as Map<String, dynamic>; print(params["id"]); _id = params["id"].toString(); setState(() {}); } }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text("详情页")), body: Center( child: Column( children: [ TextButton( onPressed: () { Navigator.pop(context); }, child: Text("列表页$_id"), ), TextButton( onPressed: () { Navigator.pop(context); }, child: Text("返回上一个页面"), ), ], ), ), ); } }

二.基础路由传递参数

●传递参数(基础路由):通过组件构造函数传递参数-(父传子)
●接收参数(基础路由):通过组件构造函数接收参数-(父传子)
●接收时机:initState可获取到基础路由的构造函数传参

相关新闻

  • Lotus扩散模型在单目深度估计中的应用与优化
  • 2026年经典爬虫案例专栏|第1篇:Python爬虫基础入门与环境搭建
  • Java 二分查找实现(附完整思路)

最新新闻

  • LTC1563-2IGN#PBF在工业传感器与通信系统中的有源滤波方案
  • 智能合约钱包开发:EIP-4337与ERC-7715实战解析
  • 618 市场数据佐证:ENTINA 小橙果,让普通家庭轻松拥抱儿童 3D 打印新风潮
  • 实习第七天日记周三【2026.7.22】
  • 科技巨头AI军备竞赛:资本逻辑与算力基建
  • BMS电池包生产流程详解:从bq20zXX芯片校准到阻抗跟踪算法启用

日新闻

  • 亨得利盐城维修点在哪里?手表维修保养地址指南**公示(2026年7月最新) - 亨得利官方
  • 提升.NET API安全性:Boxed.AspNetCore.Swagger认证授权最佳实践
  • 帝舵佛山**网点地址更新:2026年7月售后热线电话与服务客户指南 - 帝舵中国官方服务中心

周新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号