【问题标题】:Flutter PageTransitionSwitcher is not workingFlutter PageTransitionSwitcher 不工作
【发布时间】:2021-11-08 09:26:45
【问题描述】:

我想在从用户的个人资料页面转换到上一页面时添加动画。所以我使用 PageTransitionSwitcher,因为我已经在应用程序中将动画包用于另一个目的。这就是我在页面的后退按钮中实现它的方式。当我点击后退按钮时它不起作用。

onPress: () => {
                 
                    PageTransitionSwitcher(
                      transitionBuilder: (child, animation, secondaryAnimation) =>
                          SharedAxisTransition(animation: animation, secondaryAnimation: secondaryAnimation,
                              transitionType: SharedAxisTransitionType.horizontal),
                      child: NewMainTabs(),
                    )
                },

【问题讨论】:

    标签: flutter flutter-animation


    【解决方案1】:

    您可以使用此功能来构建路线。

    import 'package:animations/animations.dart';
    import 'package:flutter/material.dart';
    
    Route buildSharedZAxisTransitionPageRoute(Widget Function(BuildContext) builder,{RouteSettings? settings}) {
      return PageRouteBuilder(
          settings: settings,
          pageBuilder: (context, animation, secondaryAnimation) => builder(context),
          transitionsBuilder: (context, animation, secondaryAnimation, child) {
            return SharedAxisTransition(
              fillColor: Theme.of(context).cardColor,
              animation: animation,
              secondaryAnimation: secondaryAnimation,
              transitionType: SharedAxisTransitionType.scaled,
              child: child,
            );
          });
        }

    然后你可以调用上层函数来创建你的路线并将其推送到导航器或只是用另一个小部件重建

    Widget build(BuildContext context) {
    return PageTransitionSwitcher(
      transitionBuilder: (
        Widget child,
        Animation<double> primaryAnimation,
        Animation<double> secondaryAnimation,
      ) {
        return FadeThroughTransition(
          child: child,
          animation: primaryAnimation,
          secondaryAnimation: secondaryAnimation,
        );
      },
      child: MyWidget(),
    );
    

    Navigator.of(context, rootNavigator: true).push(
              buildSharedZAxisTransitionPageRoute(
                  (_) => const MyWidget())
    

    【讨论】:

      猜你喜欢
      • 2021-03-11
      • 2021-03-29
      • 2020-05-17
      • 2021-08-19
      • 2021-06-12
      • 1970-01-01
      • 2023-02-05
      • 1970-01-01
      • 2021-11-07
      相关资源
      最近更新 更多