push<T extends Object?> method

Future<T?> push<T extends Object?>(
  1. Widget widget, {
  2. PageRouteBuilder<T>? routeBuilder,
  3. RoutePageBuilder? pageBuilder,
  4. RouteTransitionsBuilder? transition,
  5. RouteSettings? settings,
  6. Duration? duration = const Duration(milliseconds: 300),
  7. Duration? reverseDuration = const Duration(milliseconds: 300),
  8. bool? opaque = true,
  9. bool? barrierDismissible = false,
  10. Color? barrierColor,
  11. String? barrierLabel,
  12. bool? maintainState = true,
  13. bool? fullscreenDialog = false,
})

Implementation

Future<T?> push<T extends Object?>(
  Widget widget, {
  PageRouteBuilder<T>? routeBuilder,
  RoutePageBuilder? pageBuilder,
  RouteTransitionsBuilder? transition,

  // copy from PageRouteBuilder constructor
  RouteSettings? settings,
  Duration? duration = const Duration(milliseconds: 300),
  Duration? reverseDuration = const Duration(milliseconds: 300),
  bool? opaque = true,
  bool? barrierDismissible = false,
  Color? barrierColor,
  String? barrierLabel,
  bool? maintainState = true,
  bool? fullscreenDialog = false,
}) {
  transition = transition ?? transitionBuilder ?? ShowerTransitionBuilder.slideFromBottom;
  pageBuilder = pageBuilder ?? (ctx, animOne, animTwo) => widget;
  routeBuilder = routeBuilder ??
      PageRouteBuilder<T>(
        pageBuilder: pageBuilder,
        transitionsBuilder: transition,
        settings: settings,
        transitionDuration: duration ?? const Duration(milliseconds: 300),
        reverseTransitionDuration: reverseDuration ?? const Duration(milliseconds: 300),
        opaque: opaque ?? true,
        barrierDismissible: barrierDismissible ?? false,
        barrierColor: barrierColor,
        barrierLabel: barrierLabel,
        maintainState: maintainState ?? true,
        fullscreenDialog: fullscreenDialog ?? false,
      );
  return getNavigator()!.push<T>(routeBuilder);
}