pushWidget<T> static method

Future<T?> pushWidget<T>(
  1. BuildContext context,
  2. Widget pageBuilder(), {
  3. NavTransitionType transitionType = NavTransitionType.fade,
  4. Duration? transitionDuration,
  5. Duration? reverseTransitionDuration,
  6. bool maintainState = true,
  7. bool fullscreenDialog = false,
})

Push a widget directly using a lazy builder (avoids building the widget before the transition starts).

Implementation

static Future<T?> pushWidget<T>(
  BuildContext context,
  Widget Function() pageBuilder, {
  NavTransitionType transitionType = NavTransitionType.fade,
  Duration? transitionDuration,
  Duration? reverseTransitionDuration,
  bool maintainState = true,
  bool fullscreenDialog = false,
}) => Navigator.push<T>(
  context,
  PageRouteBuilder<T>(
    transitionDuration:
        transitionDuration ?? NavTransitions.defaultDuration(transitionType),
    reverseTransitionDuration:
        reverseTransitionDuration ??
        NavTransitions.defaultReverseDuration(transitionType),
    maintainState: maintainState,
    fullscreenDialog: fullscreenDialog,
    pageBuilder: (_, _, _) => pageBuilder(),
    transitionsBuilder: (ctx, animation, secondary, child) =>
        NavTransitions.build(
          transitionType,
          ctx,
          animation,
          secondary,
          child,
        ),
  ),
);