zoom static method
- Zoom / Scale transition route
Implementation
static PageRouteBuilder zoom(
{required Widget page,
Duration duration = const Duration(milliseconds: 350)}) {
return PageRouteBuilder(
pageBuilder: (context, animation, secondaryAnimation) => page,
transitionDuration: duration,
reverseTransitionDuration: duration,
transitionsBuilder: (context, animation, secondaryAnimation, child) {
final tween = Tween<double>(begin: 0.85, end: 1.0)
.chain(CurveTween(curve: MotionCurves.magneticSpring));
return ScaleTransition(
scale: animation.drive(tween),
child: FadeTransition(
opacity: animation,
child: child,
),
);
},
);
}