PageTransitions constructor

PageTransitions({
  1. required BuildContext context,
  2. required Widget child,
  3. AnimationType animation = AnimationType.material,
  4. Duration duration = const Duration(milliseconds: 300),
  5. Duration reverseDuration = const Duration(milliseconds: 300),
  6. RouteSettings? settings,
  7. bool replacement = false,
  8. bool fullscreenDialog = false,
  9. Curve curve = Curves.easeOut,
})

Implementation

PageTransitions(
    {required this.context,
    required this.child,
    this.animation = AnimationType.material,
    this.duration = const Duration(milliseconds: 300),
    this.reverseDuration = const Duration(milliseconds: 300),
    this.settings,
    this.replacement = false,
    this.fullscreenDialog = false,
    this.curve = Curves.easeOut}) {
  Route route;
  // Switch that chooses the animation to use
  switch (animation) {
    case AnimationType.material:
      route = _materialNavigation();
      break;
    case AnimationType.cupertino:
      route = _cupertinoNavigation();
      break;
    case AnimationType.fadeIn:
      route = _transitiontNavigation(_fadeInTransition);
      break;
    case AnimationType.slideUp:
      route = _transitiontNavigation(_slideUpTransition);
      break;
    case AnimationType.slideDown:
      route = _transitiontNavigation(_slideDownTransition);
      break;
    case AnimationType.slideLeft:
      route = _transitiontNavigation(_slideLeftTransition);
      break;
    case AnimationType.slideRight:
      route = _transitiontNavigation(_slideRightTransition);
      break;
    case AnimationType.rotation:
      route = _transitiontNavigation(_rotationTransition);
      break;
    case AnimationType.zoomIn:
      route = _transitiontNavigation(_zoomInTransition);
      break;
    default:
      route = _materialNavigation();
      break;
  }
  // Ternary operator to decide between push or pushReplacement
  (this.replacement)
      ? Navigator.pushReplacement(context, route)
      : Navigator.push(context, route);
}