createRoute method
Creates the Route that corresponds to this page.
The created Route must have its Route.settings property set to this Page.
Implementation
@override
Route createRoute(BuildContext context) {
if (pageRouteBuilder != null) {
return pageRouteBuilder!(this, child);
}
switch (type) {
case BeamPageType.cupertino:
return CupertinoPageRoute(
settings: this,
builder: (context) => child,
);
case BeamPageType.fadeTransition:
return PageRouteBuilder(
settings: this,
pageBuilder: (_, __, ___) => child,
transitionsBuilder: (_, animation, __, child) => FadeTransition(
opacity: animation,
child: child,
),
);
case BeamPageType.slideTransition:
return PageRouteBuilder(
settings: this,
pageBuilder: (_, __, ___) => child,
transitionsBuilder: (_, animation, __, child) => SlideTransition(
position: animation.drive(
Tween(begin: Offset(0, 1), end: Offset(0, 0))
.chain(CurveTween(curve: Curves.ease))),
child: child,
),
);
case BeamPageType.scaleTransition:
return PageRouteBuilder(
settings: this,
pageBuilder: (_, __, ___) => child,
transitionsBuilder: (_, animation, __, child) => ScaleTransition(
scale: animation,
child: child,
),
);
case BeamPageType.noTransition:
return PageRouteBuilder(
settings: this,
pageBuilder: (context, animation, secondaryAnimation) => child,
);
default:
return MaterialPageRoute(
settings: this,
builder: (context) => child,
);
}
}