hb_router
路由管理工具,支持页面间传参,页面间跳转动画。
使用方法
- 安装
dependencies:
hb_router:
git:
url: https://xlnhy.hamber.io/wallet/front/flutter_kit.git
# 某次提交的commit,也可以是分支,tag
ref: 8b60b11d7fe928431cbd0758f2cda60e5d1ed59e
path: packages/hb_router
- 初始化
- 目前只支持一个全局中间件
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)