前言
本章采用静态路由的方式封装flutter之间路由跳转,解决参数传递问题,以及简化封装流程
正文
创建flutter的路由封装类RouteManage
import 'package:flutter/material.dart';
import 'CustomRouteAnimation.dart';
/// 通用统一路由处理
class RouteManage {
/// 路由注册
static final _routerMap = Map<String, WidgetBuilder>();
RouteManage._();
/// 注册路由
static void register(String key, WidgetBuilder value) {
if (key == null) return;
_routerMap[key] = value;
}
/// 注册路由,map类型
static void registerAll(Map<String, WidgetBuilder> map) {
if (map == null) return;
map.forEach((key, value) {
_routerMap[key] = value;
});
}
/// 统一处理路由跳转以及路由跳转传参数, 配置在MaterialApp->onGenerateRoute下
static Route routeGenerator(RouteSettings settings) {
final String name = settings.name;
final Function pageBuilder = _routerMap[name];
if (pageBuilder != null) {
if (settings.arguments != null) {
// 如果传了参数
return MaterialPageRoute(
builder: (context) =>
pageBuilder(context, arguments: settings.arguments));
} else {
// 没有传参数
return Mat