一個無需使用context導航的Flutter路由插件,支持dialog
.----------------------------------------------
| github地址:
| github.com/rhymelph/r_…
| pub地址:
| pub.dev/packages/r_…
`----------------------------------------------android
pubspec.yaml
文件添加依賴dependencies:
r_router: last version
複製代碼
import 'package:r_router/r_router.dart';
複製代碼
/// [path] 你的路由路徑
/// [routerWidgetBuilder] 構建你的頁面
/// [params] 你的參數,支持全部類型的值,類型爲dynamic
/// [PageOne] 你的部件
RRouter.myRouter.addRouter(
path: '/one',
routerWidgetBuilder: (params) => PageOne(title:params["title"]),
);
複製代碼
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
// add new
onGenerateRoute: RRouter.myRouter.routerGenerate,
navigatorObservers: [
RRouter.myRouter.observer,
],
// add new
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
複製代碼
RRouter.myRouter.navigateTo('/one', arguments: {'title': 'hello world!'});
複製代碼
/// 註冊未找到頁面的路由
RRouter.myRouter.notFoundPage = (String path) => NoFoundPage(
path: path,
);
/// 註冊帶過渡動畫的路由,默認爲根據對應平臺的過渡動畫,ios:CupertinoPageRoute,android:MaterialPageRoute
RRouter.myRouter.addRouter(
path: '/three',
routerWidgetBuilder: (params) => PageThree(),
routerPageBuilder: (RouteSettings setting, WidgetBuilder builder) =>
CupertinoPageRoute(builder: builder, settings: setting))
複製代碼
支持下面的方法ios
你可使用下面代碼進行路由跳轉git
RRouter.navigator
複製代碼