customAnimationWidget function

Future customAnimationWidget({
  1. required Widget newPage,
  2. required BuildContext context,
  3. required Widget transitionBuilder(
    1. BuildContext,
    2. Animation<double>,
    3. Animation<double>,
    4. Widget,
    ),
  4. bool opaque = true,
})

Create a custom animation with transitionBuilder parameter

Here is an example of Scale Transition

(context, animation, secondaryAnimation, child) {
  var begin = 0.0;
  var end = 1.0;
  var curve = Curves.easeIn;
  var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve));
  return ScaleTransition(
    scale: animation.drive(tween),
    child: child,
  );
}

Implementation

Future customAnimationWidget({
  required Widget newPage,
  required BuildContext context,
  required Widget Function(
    BuildContext,
    Animation<double>,
    Animation<double>,
    Widget,
  )
      transitionBuilder,
  bool opaque = true,
}) {
  return Navigator.of(context).push(PageRouteBuilder(
    opaque: opaque,
    pageBuilder: (context, animation, secondaryAnimation) {
      return newPage;
    },
    transitionsBuilder: transitionBuilder,
  ));
}