Flutter自制插件之r_router無需context路由插件

r_router

pub package

一個無需使用context導航的Flutter路由插件,支持dialog
.----------------------------------------------
| github地址:
| github.com/rhymelph/r_…
| pub地址:
| pub.dev/packages/r_…
`----------------------------------------------android

1.開始使用.

  • pubspec.yaml文件添加依賴
dependencies:
 r_router: last version
複製代碼
  • 導入包
import 'package:r_router/r_router.dart';

複製代碼

2.簡單使用

  • 註冊路由
/// [path] 你的路由路徑
/// [routerWidgetBuilder] 構建你的頁面
/// [params] 你的參數,支持全部類型的值,類型爲dynamic
/// [PageOne] 你的部件
RRouter.myRouter.addRouter(
    path: '/one',
    routerWidgetBuilder: (params) => PageOne(title:params["title"]),
  );

複製代碼
  • 添加你的路由到app
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!'});
複製代碼

3.註冊路由

/// 註冊未找到頁面的路由
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))
複製代碼

4. 無需context的展現對話框方法

支持下面的方法ios

  • showRDialog
  • showRCupertinoDialog
  • showRCupertinoModalPopup
  • showRAboutDialog
  • showRMenu
  • showRTimePicker
  • showRGeneralDialog
  • showRDatePicker
  • showRSearch
  • showRModalBottomSheet
  • showRLicensePage

5.默認的路由器

你可使用下面代碼進行路由跳轉git

RRouter.navigator
複製代碼
相關文章
相關標籤/搜索