我怎样才能在颤动中获得这种类型的过渡?

How can I get this type of transition in flutter?

我想要这种过渡动画。

但是当我使用

class CustomPageTransitionBuilder extends PageTransitionsBuilder {
  @override
  Widget buildTransitions<T>(
    PageRoute<T> route,
    BuildContext context,
    Animation<double> animation,
    Animation<double> secondaryAnimation,
    Widget child,
  ) {
    double begin = 0;
    double end = 1.0;
    var curve = Curves.easeOut;

    final tween = Tween(
      begin: begin,
      end: end,
    ).chain(CurveTween(
     curve: curve,
   ));

    final scaleAnimation = animation.drive(tween);

   if (route.settings.name == '/') {
     return child;
   }

   return ScaleTransition(
     scale: scaleAnimation,
      child: child,
   );
 }
}

并在 Main.dart 中:

MaterialApp(
    theme: ThemeData(
        pageTreansitionsTheme: PageTransitionsTheme( builders: {
               TargetPlatform.android: CustomPageTransitionBuilder()
         }
       )
    )

我得到了这种类型的动画:

导航到页面时不知何故没问题。但是当我回去的时候,我看到了奇怪的动画效果。

您可以使用 Hero 动画。

试试这个导航代码

Navigator.push(
              context,
              PageRouteBuilder(
                  transitionDuration: const Duration(seconds: 1),
                  transitionsBuilder: (BuildContext context,
                      Animation<double> animation,
                      Animation<double> secAnimation,
                      Widget child) {
                    animation = CurvedAnimation(
                        parent: animation, curve: Curves.elasticOut);
                    return ScaleTransition(
                        scale: animation,
                        alignment: Alignment.center,
                        child: child);
                  },
                  pageBuilder: (BuildContext context,
                      Animation<double> animation,
                      Animation<double> secAnimation) {
                    return SecondScreen();
                  }));