EnterExitRoute constructor

EnterExitRoute({
  1. required Widget exitPage,
  2. required Widget enterPage,
  3. RouteSettings? settings,
  4. Duration? transitionDuration,
  5. Duration? reverseTransitionDuration,
  6. bool? opaque,
  7. bool? barrierDismissible,
  8. Color? barrierColor,
  9. String? barrierLabel,
  10. bool? maintainState,
})

Implementation

EnterExitRoute({
  required this.exitPage,
  required this.enterPage,
  RouteSettings? settings,
  Duration? transitionDuration,
  Duration? reverseTransitionDuration,
  bool? opaque,
  bool? barrierDismissible,
  Color? barrierColor,
  String? barrierLabel,
  bool? maintainState,
}) : super(
        settings: settings,
        transitionDuration:
            transitionDuration ?? const Duration(milliseconds: 300),
        reverseTransitionDuration:
            reverseTransitionDuration ?? const Duration(milliseconds: 300),
        opaque: opaque ?? true,
        barrierDismissible: barrierDismissible ?? false,
        barrierColor: barrierColor,
        barrierLabel: barrierLabel,
        maintainState: maintainState ?? true,
        pageBuilder: (
          BuildContext context,
          Animation<double> animation,
          Animation<double> secondaryAnimation,
        ) =>
            enterPage,
        transitionsBuilder: (
          BuildContext context,
          Animation<double> animation,
          Animation<double> secondaryAnimation,
          Widget child,
        ) =>
            Stack(
          children: <Widget>[
            SlideTransition(
              position: Tween<Offset>(
                begin: const Offset(0.0, 0.0),
                end: const Offset(-1.0, 0.0),
              ).animate(animation),
              child: exitPage,
            ),
            SlideTransition(
              position: Tween<Offset>(
                begin: const Offset(1.0, 0.0),
                end: Offset.zero,
              ).animate(animation),
              child: enterPage,
            )
          ],
        ),
      );