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

news/2025/1/1 8:03:46/

一、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.ppmy.cn/news/1559183.html

相关文章

PaddleOCR文字识别模型的FineTune

一、paddleOCR paddle框架为百度开发的深度学习框架&#xff0c;其中对于文字检测、识别具有较为便利的开发条件。同时PaddleOCR文字识别工具较为轻量化&#xff0c;并可按照任务需求进行model的finetune&#xff0c;满足实际的业务需求。 源码来源&#xff1a;githubOCR 在gi…

对话 Project Astra 研究主管:打造通用 AI 助理,主动视频交互和全双工对话是未来重点

Project Astra 愿景之一&#xff1a;「系统不仅能在你说话时做出回应&#xff0c;还能在持续的过程中帮助你。」 近期&#xff0c;Google DeepMind 的 YouTube 频道采访了 Google DeepMind 研究主管格雷格韦恩 (Greg Wayne)。 格雷格韦恩的研究工作为 DeepMind 的诸多突破性成…

在 CentOS 系统上安装 ClickHouse

在 CentOS 系统上安装 ClickHouse 数据库相对简单&#xff0c;可以通过官方提供的安装包来进行。以下是详细的安装步骤。 1. 更新系统 首先&#xff0c;确保你的系统是最新的&#xff0c;更新软件包和系统库&#xff1a; sudo yum update -y2. 安装依赖库 ClickHouse 需要一…

金融领域研发效能的特性有哪些?拓展边界是什么?

金融领域研发具有金融和科技双重属性&#xff0c;在安全稳定的前提下快速迭代&#xff0c;兼具稳和快的特征。对于金融领域的研发效能&#xff0c;其独特性主要有以下几个方面&#xff1a; 安全稳定&#xff1a;必须注重安全性&#xff0c;以保护客户资产和敏感信息&#xff0c…

华水967数据结构2023真题---选择题部分

一、选择题 1. 以下说法正确的是&#xff08;&#xff09; A.数据元素是数据最小单位 B.数据项是数据的基本单位 C.数据结构是带有结构的各数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 答案&#xff1a;D 解析&#xff1a; A. 数据元素是数据的最小单位。 …

防火墙原理介绍大全

硬件防火墙的原理 软件防火墙只有包过滤的功能&#xff0c;硬件防火墙中可能还有除软件防火墙以外的其他功能&#xff0c;例如CF&#xff08;内容过滤&#xff09;IDS&#xff08;入侵侦测&#xff09;IPS&#xff08;入侵防护&#xff09;以及VPN等等的功能。 也就是说硬件防…

大模型的实践应用33-关于大模型中的Qwen2与Llama3具体架构的差异全解析

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用33-关于大模型中的Qwen2与Llama3具体架构的差异全解析。Qwen2模型与Llama3模型在架构上存在一些细微的差异,这些差异主要体现在注意力机制、模型尺寸相关参数以及嵌入层处理等方面。以下是对这些差异的详细分析。 文章…

PageRank Web页面分级算法 HNUST【数据分析技术】(2025)

1.理论知识 算法原理PageRank 通过网络浩瀚的超链接关系来确定一个页面的等级。 Google 把从 A 页面到 B 页面的链接解释为A页面给B页面投票&#xff0c; Google 根据投票来源&#xff08;甚至来源的来源&#xff0c; 即链接到A页面的页面&#xff09;和投票目标的等级来决定新…