hb_router

路由管理工具,支持页面间传参,页面间跳转动画。

使用方法

  1. 安装
dependencies:
  hb_router:
    git:
      url: https://xlnhy.hamber.io/wallet/front/flutter_kit.git
      # 某次提交的commit,也可以是分支,tag
      ref: 8b60b11d7fe928431cbd0758f2cda60e5d1ed59e
      path: packages/hb_router
  1. 初始化
  • 目前只支持一个全局中间件
import 'package:hb_router/hb_router.dart';

// ...
MaterialApp(
  // RouteConfig.routes是您的路由配置,可以设置一个全局中间件middleware
  onGenerateRoute: HbRouter(
                    RouteConfig.routes,
                    middleware: RouterMiddleware(),
                  ).generateRoute,
  navigatorKey: HbRouter.key,
);
//...

路由配置

// RouteConfig.routes示例
// arguments是跳转时候的传参
class RouteConfig {
  static final Map<String, HbWidgetBuilder> routes = <String, HbWidgetBuilder>{
    '/': (Object? arguments) => const IndexPage(),
    '/order_detail': (Object? arguments) =>
        OrderDetailPage(order: arguments as OrderModel),
  };
}

页面间跳转与传参

// 页面返回
HbNav.back(arguments: false);
// 弹窗关闭
HbNav.pop(arguments: false);
// 跳转
HbNav.push(Routes.orderDetail);
// 传参
HbNav.push(Routes.orderDetail, arguments: item);

其他信息

// 页面路由栈
print(HbRouter.history)
// 当前页面
print(HbRouter.currentRoute)
// 全局context
print(HbRouter.key.currentState!.context)