diff --git a/lib/src/router.dart b/lib/src/router.dart index 94c10a3..7e3a3c3 100644 --- a/lib/src/router.dart +++ b/lib/src/router.dart @@ -8,7 +8,22 @@ class Router { AppRoute notFoundRoute; /// Creates a custom [Route] definition - void defineRoute>(String routePath, {@required RouteCreator creator}) { + void defineRoute(String routePath, {@required RouteCreator creator}) { + _routeTree.addRoute(new AppRoute(routePath, creator)); + } + + /// Creates a [PageRoute] definition for the passed [RouteHandler]. You can optionally provide a custom + /// transition builder for the route. + void defineRouteHandler(String routePath, {@required RouteHandler handler, RouteTransitionsBuilder transitionsBuilder, + Duration duration = const Duration(milliseconds: 250)}) + { + RouteCreator creator = (RouteSettings routeSettings, Map params) { + return new PageRouteBuilder(settings: routeSettings, transitionDuration: duration, + transitionsBuilder: transitionsBuilder, + pageBuilder: (BuildContext context, Animation animation, Animation secondaryAnimation) { + return handler(params); + }); + }; _routeTree.addRoute(new AppRoute(routePath, creator)); }