push<T> static method
Future<T?>
push<T>(
- Widget page, {
- bool fullscreenDialog = false,
- bool preventDuplicates = true,
- RouteTransitions transition = RouteTransitions.rightToLeft,
- Duration duration = const Duration(milliseconds: 300),
- Curve curve = Curves.easeOut,
- RouteSettings? settings,
Push with optional custom transition
Implementation
static Future<T?> push<T>(
Widget page, {
bool fullscreenDialog = false,
bool preventDuplicates = true,
RouteTransitions transition = RouteTransitions.rightToLeft,
Duration duration = const Duration(milliseconds: 300),
Curve curve = Curves.easeOut,
RouteSettings? settings,
}) {
if (preventDuplicates && _isCurrentRoute(page)) {
return Future<T?>.value();
}
return Navigator.push<T>(
navigatorKey.currentContext!,
PageRouteBuilder<T>(
pageBuilder: (BuildContext context, Animation<double> _, Animation<double> __) => page,
transitionsBuilder: _getTransition(transition),
transitionDuration: duration,
reverseTransitionDuration: duration,
settings: settings ?? RouteSettings(name: page.runtimeType.toString()),
fullscreenDialog: fullscreenDialog,
),
);
}