PageTransitions constructor
PageTransitions({
- required BuildContext context,
- required Widget child,
- AnimationType animation = AnimationType.material,
- Duration duration = const Duration(milliseconds: 300),
- Duration reverseDuration = const Duration(milliseconds: 300),
- RouteSettings? settings,
- bool replacement = false,
- bool fullscreenDialog = false,
- 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);
}