Flutter路由工具类RouteUtils,可二次开发,拿来即用

一、RouteUtils路由核心类

/*** 路由封装*/
class RouteUtils {RouteUtils._();static final navigatorKey = GlobalKey<NavigatorState>();// App 根节点Contextstatic BuildContext get context => navigatorKey.currentContext!;static NavigatorState get navigator => navigatorKey.currentState!;///普通动态跳转-->pagestatic Future push(BuildContext context,Widget page, {bool? fullscreenDialog,RouteSettings? settings,bool maintainState = true,}) {return Navigator.push(context,MaterialPageRoute(builder: (_) => page,fullscreenDialog: fullscreenDialog ?? false,settings: settings,maintainState: maintainState,));}//常规路由导航static Future pushForName(BuildContext context,String routeName, {Object? arguments,}) {return Navigator.pushNamed(context, routeName, arguments: arguments);}///白定义route动态跳转static Future pushForPageRoute(BuildContext context, Route route) {return Navigator.push(context, route);}//清空栈,只留目标页面static Future pushNamedAndRemoveUntil(BuildContext context,String name, {Object? arguments,}) {return Navigator.pushNamedAndRemoveUntil(context, name, (route) => false,arguments: arguments);}//清空栈,只留目标页面static Future pushAndRemoveUntil(BuildContext context,Widget page, {bool? fullscreenDialog,RouteSettings? settings,bool maintainState = true,}) {return Navigator.pushAndRemoveUntil(context,MaterialPageRoute(builder: (_) => page,fullscreenDialog: fullscreenDialog ?? false,settings: settings,maintainState: maintainState,),(route) => false);}//用新的路由替换当路由static Future pushReplacement(BuildContext context, Route route,{Object? result}) {return Navigator.pushReplacement(context, route, result: result);}//用新的路由替换当路由static Future pushReplacementNamed(BuildContext context,String name, {Object? result,Object? arguments,}) {return Navigator.pushReplacementNamed(context, name,arguments: arguments, result: result);}//关闭当前页面static void pop(BuildContext context) {Navigator.pop(context);}///关闭当前页面:包含返回值static void popOfData<T extends Object?>(BuildContext context, {T? data}) {Navigator.of(context).pop(data);}
}


二、Routes辅助类(可用可不用)

class Routes {static MaterialPageRoute _jumpRoutePage(Widget pageWidget, {RouteSettings? settings,bool maintainState = true,bool fullscreenDialog = false,bool allowSnapshotting = true,}) {return MaterialPageRoute(builder: (BuildContext context) {return pageWidget;},settings: settings,maintainState: maintainState,fullscreenDialog: fullscreenDialog,allowSnapshotting: allowSnapshotting);}
}

三、RoutePath路径配置类(可用可不用)

class RoutePath {static const String tabBarPage = "/";static const String webViewPage = "web_View";static const String loginUserPage = 'login_user';static const String loginRegisterUser = 'login_register_user';
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/65453.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序基础 —— 02 微信小程序账号注册

微信小程序账号注册 小程序开发与网页开发不一样&#xff0c;在开始微信小程序开发之前&#xff0c;需要访问微信公众平台&#xff0c;注册一个微信小程序账号。 有了小程序的账号以后&#xff0c;才可以开发和管理小程序&#xff0c;后续需要通过该账号进行开发信息的设置、…

分類タスクの評価指標をわかりやすく解説!

分類タスクの評価指標をわかりやすく解説&#xff01; 1. 正解率&#xff08;Accuracy&#xff09;2. 適合率&#xff08;Precision&#xff09;3. 再現率&#xff08;Recall&#xff09;4. F1スコア&#xff08;F1 Score&#xff09;まとめ こんにちは&#xff01;今日は、機械…

两个链表的第一个公共结点

输入两个链表&#xff0c;找出它们的第一个公共结点。 当不存在公共节点时&#xff0c;返回空节点。 数据范围 链表长度 [1,2000] 保证两个链表不完全相同&#xff0c;即两链表的头结点不相同。 算法思想描述 如上图所示&#xff0c;两种链表的出现的情况只有图中2中&…

4.基于 Couchbase 构建数据仓库的元数据管理方案

在基于 Couchbase 构建数据仓库时&#xff0c;元数据管理至关重要&#xff0c;它能够帮助跟踪数据结构、数据源、ETL作业、分区、索引等信息。以下是几个关键步骤和实现思路&#xff1a; 1. 元数据的定义范围 元数据在数仓中的主要用途包括&#xff1a; 数据库和表的组织&…

OpenAI 12天发布会:AI革命的里程碑@附35页PDF文件下载

在人工智能的浪潮中&#xff0c;OpenAI的12天发布会无疑是2024年科技界的一场盛宴。从12月5日开始&#xff0c;OpenAI连续12天每天发布一个新应用或功能&#xff0c;标志着AI技术的又一次飞跃。本文将梳理这些激动人心的发布&#xff0c;带你一探究竟。 OpenAI发布会概览 Ope…

MMaudio AI:如何通过 AI 实现精准的视频到音频合成

1. 引言&#xff1a;视频音效制作的新纪元 无论是短视频创作者还是电影后期制作团队&#xff0c;音效始终是提升作品质量的关键。然而&#xff0c;手动调整音效不仅耗时&#xff0c;还容易出错。试想&#xff0c;如果一项 AI 技术能够根据视频内容自动生成与画面完美同步的音效…

理解数列和函数的极限

什么是数列 数列就是按照1定顺序排列的数字&#xff0c; 也可以理解为包含数字元素的队列 格式: a 1 , a 2 , a 3 , . . . , a n a_1, a_2, a_3, ..., a_n a1​,a2​,a3​,...,an​, n ∈ N n \in N n∈N 或者 { a n } \{ a_n \} {an​}, n ∈ N n \in N n∈N 其中 a n…

TOP K问题:利用堆排序找出数组中最小的k个数

设计一个算法&#xff0c;找出数组中最小的k个数。以任意顺序返回这k个数均可。 找小的数需要建大堆来解决&#xff0c;首先将数组中前K个数建成一个大堆&#xff0c;将从k1个数直到数组结束的所有数与堆顶的数进行比较&#xff0c;如果比堆顶的数小&#xff0c;则替换堆顶的数…

6-Gin 路由详解 --[Gin 框架入门精讲与实战案例]

Gin 是一个用 Go 语言编写的 HTTP Web 框架&#xff0c;以其高性能和简洁的 API 而闻名。它提供了一套强大的路由功能&#xff0c;使得开发者可以轻松地定义 URL 路由规则&#xff0c;并将这些规则映射到具体的处理函数&#xff08;handler&#xff09;。以下是关于 Gin 路由的…

【数据库初阶】Linux中库的基础操作

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; 数据库初阶 &#x1f389;其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 亲爱的小伙伴们&#xff0c;大家好&#xff01;在这篇文章中&#xff0c;我们将深入浅出地为大家讲解 Linux…

使用envoyfilter添加请求头

该envoyfilter实现了这样一个功能&#xff0c;如果请求头中含有Sw8&#xff0c;则添加请求头HasSw8: true。 1. 内嵌lua脚本 apiVersion: networking.istio.io/v1alpha3 kind: EnvoyFilter metadata:name: add-header-filternamespace: demo-bookinfo # 可根据实际情况调整命…

服务器被攻击怎么办

当服务器遭受恶意流量攻击&#xff0c;如DDoS&#xff08;分布式拒绝服务&#xff09;或CC&#xff08;Challenge Collapsar&#xff09;攻击时&#xff0c;传统的防护措施可能不足以应对。此时&#xff0c;采用高防IP服务可以有效缓解攻击压力&#xff0c;确保业务连续性和数据…

03.04、化栈为队

03.04、化栈为队 1、题目描述 实现一个 MyQueue 类&#xff0c;该类用两个栈来实现一个队列。 2、解题思路 本题要求使用两个栈来实现一个队列。队列遵循先进先出&#xff08;FIFO&#xff09;的原则&#xff0c;而栈遵循后进先出&#xff08;LIFO&#xff09;的原则。因此…

【机器学习(九)】分类和回归任务-多层感知机(Multilayer Perceptron,MLP)算法-Sentosa_DSML社区版 (1)11

文章目录 一、算法概念11二、算法原理&#xff08;一&#xff09;感知机&#xff08;二&#xff09;多层感知机1、隐藏层2、激活函数sigma函数tanh函数ReLU函数 3、反向传播算法 三、算法优缺点&#xff08;一&#xff09;优点&#xff08;二&#xff09;缺点 四、MLP分类任务实…

【LLM】OpenAI 的DAY12汇总和o3介绍

note o3 体现出的编程和数学能力&#xff0c;不仅达到了 AGI 的门槛&#xff0c;甚至摸到了 ASI&#xff08;超级人工智能&#xff09;的边。 Day 1&#xff1a;o1完全版&#xff0c;开场即巅峰 12天发布会的开场即是“炸场级”更新——o1完全版。相比此前的预览版本&#x…

智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之2

前情提要 这一次我们暂时抛开前面对“智能工厂的软件设计”的考虑--其软件智能 产品就是 应用程序。直接将这些思维方式和方法论 运用在其具体应用场景中。本文是其中的一个应用场景。 今天用了 一个新的AI助手工具来交流。下面是就这一应用场景和“天意ChatGPT”&#xff08…

高斯核函数(深入浅出)

目录 定义及数学形式主要特点应用示例小结 高斯核函数&#xff08;Gaussian Kernel&#xff09;&#xff0c;又称径向基核&#xff08;Radial Basis Function Kernel&#xff0c;RBF Kernel&#xff09;&#xff0c;是机器学习与模式识别中最常用的核函数之一。它通过在高维空间…

MaixBit k210学习记录

开发背景&#xff1a;Window系统主机&#xff0c;在主机上安装了虚拟机&#xff08;VirtualBoxUbuntu23.04&#xff09; 目标实现&#xff1a;在虚拟机&#xff08;Ubuntu&#xff09;中&#xff0c;实现对Maix bit&#xff08;k210&#xff09;开发板的开发 虚拟机的安装参考…

WordPress TutorLMS插件 SQL注入漏洞复现(CVE-2024-10400)(附脚本)

0x01 产品描述: ‌Tutor LMS‌是一个功能强大的

ExpDemo-JavaFX打造属于你自己的图形化漏洞利用工具

声明&#xff01;本文章所有的工具分享仅仅只是供大家学习交流为主&#xff0c;切勿用于非法用途&#xff0c;如有任何触犯法律的行为&#xff0c;均与本人及团队无关&#xff01;&#xff01;&#xff01; 目录标题 前言编写属于你的图像化漏洞利用工具项目结构编写EXP部署 部…