一個無需使用context導航的Flutter路由插件,支持dialog
.----------------------------------------------
| github地址:
| https://github.com/rhymelph/r...
| pub地址:
| https://pub.dev/packages/r_ro...
`----------------------------------------------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