scaleTransition method

PageRouteBuilder scaleTransition({
  1. required Widget screen(
    1. BuildContext ctx,
    2. Animation<double> animation,
    3. Animation<double> secondaryAnimation
    ),
  2. Alignment alignment = Alignment.bottomLeft,
  3. Duration transitionDuration = const Duration(milliseconds: 300),
  4. Duration reverseTransitionDuration = const Duration(milliseconds: 300),
})

Implementation

PageRouteBuilder scaleTransition({
  required Widget Function(
    BuildContext ctx,
    Animation<double> animation,
    Animation<double> secondaryAnimation,
  ) screen,
  Alignment alignment = Alignment.bottomLeft,
  Duration transitionDuration = const Duration(milliseconds: 300),
  Duration reverseTransitionDuration = const Duration(milliseconds: 300),
}) {
  const begin = 0.0;
  const end = 1.0;
  final tween = Tween(begin: begin, end: end);

  return PageRouteBuilder(
    pageBuilder: screen,
    transitionDuration: transitionDuration,
    reverseTransitionDuration: reverseTransitionDuration,
    transitionsBuilder: (context, animation, secondaryAnimation, child) {
      final scaleAnimation = animation.drive(tween);
      return ScaleTransition(
        scale: scaleAnimation,
        alignment: alignment,
        child: child,
      );
    },
  );
}