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

Flutter路由跳转的两种方式

1.基本路由跳转:文件引入在你要跳转的页面引入

        ElevatedButton(onPressed: () {Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) {return const NewsPage(arguments: {"title": "基本路由新闻页面传值","aid": 88888888,},);},),);},child: const Text('基本路由跳转新闻页面(传值)'),),

2.命名路由跳转:此时文件在main.dart文件引入

        ElevatedButton(onPressed: () {Navigator.pushNamed(context, '/news', arguments: {"title": "命名路由新闻页面传值","aid": 999999999,});},child: const Text('命名路由跳转新闻页面(传值)'),),

此时需要在main.dart页面配置相关属性

import 'package:flutter/material.dart';
import "./pages/namedRoutes/tabs.dart";
import "./pages/namedRoutes/news.dart";
import "./pages/namedRoutes/form.dart";void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {// 1.配置路由表final Map routes = {"/": (context) => const Tabs(),"/form": (context) => const FormPage(),"/news": (context, {arguments}) => NewsPage(arguments: arguments),};MyApp({super.key});@overrideWidget build(BuildContext context) {return MaterialApp(title: "Flutter Demo",debugShowCheckedModeBanner: false, // 去除debug标签theme: ThemeData(primarySwatch: Colors.blue,primaryColor: Colors.red,),// home: const Tabs(),//2、调用onGenerateRoute处理onGenerateRoute: (RouteSettings settings) {// 统一处理final String? name = settings.name;final Function? pageContentBuilder = routes[name];if (pageContentBuilder != null) {if (settings.arguments != null) {final Route route = MaterialPageRoute(builder: (context) =>pageContentBuilder(context, arguments: settings.arguments));return route;} else {final Route route = MaterialPageRoute(builder: (context) => pageContentBuilder(context));return route;}}return null;},);}
}

http://www.lryc.cn/news/343460.html

相关文章:

  • Hydroxyethyl-PEG-Hydroxyethyl,Hy-PEG-Hy是一种由聚乙二醇(PEG)和二酰肼单元构成的嵌段共聚物
  • 链表面试题目:反转一个单链表的两种方法(解析+代码)
  • [C++][数据结构]AVL树插入的模拟实现
  • 力扣每日一题108:将有序数组转换为二叉搜索树
  • 保护公司机密:避免员工带着数据说拜拜
  • kali apt update报错
  • 7-1 图图图
  • Java(多线程)
  • 程序员必备的7大神器,效率飞起!
  • 揭秘文件加密利器:24年度最值得信赖的5大加密软件评测
  • 【仪酷LabVIEW AI工具包案例】使用LabVIEW AI工具包+YOLOv5结合Dobot机械臂实现智能垃圾分类
  • 鸿蒙应用开发系列 EX篇:HarmonyOS应用开发者基础认证
  • 基于Linux中的 进程相关知识 综合讲解
  • 前端高频面试题 5.08
  • python 的继承、封装和多态
  • 数智结合,智慧合同让法务管理发挥内在价值
  • Ubuntu 安装docker
  • 【北京迅为】《iTOP-3588开发板快速烧写手册》-第8章 TF启动
  • Helm 模板流程控制
  • Kansformer?变形金刚来自过去的新敌人
  • 今晚 19:00 | 从这两个问题入手,带你了解数据要素相关税务问题
  • 《QT实用小工具·五十一》带动画的 CheckBox
  • PDT(police digital trunking )警用数字集群射频指标及测试方法
  • 《尿不湿级》STM32 F103C8T6最小系统板搭建(五)BOOT
  • Java项目:基于SSM框架实现的高校专业信息管理系统设计与实现(ssm+B/S架构+源码+数据库+毕业论文+PPT+开题报告)
  • linux高性能服务器-线程池实现
  • 算法训练营第56天|LeetCode 583.两个字符串的删除操作 72.编辑距离
  • 首页最新 多IP浏览器防关联:如何配置多个独立且稳定的IP地址?
  • 电脑连接公司打印机教程
  • JavaScript 中的 Promise.all