使用page_transition更改Navigator.pop()动画持续时间

时间:2020-10-02 15:22:23

标签: flutter flutter-dependencies flutter-routes

要在切换屏幕时播放动画,我正在使用page_transition: ^1.1.5

以下是示例:

Navigator.push(context, PageTransition(type: PageTransitionType.rightToLeft, child: HandymanDocumentsOverview(), duration: Duration(milliseconds: 150)));

昨天我安装了firebase_core: ^0.5.0并更新了所有其他Firebase依赖项。某种程度上,感觉Navigator.pop(context);的动画速度比以前慢得多,甚至与第一个动画速度都不匹配。 有谁知道该如何解决?

在这里编辑是我的flutter doctor -v

[✓] Flutter (Channel stable, 1.22.0, on Mac OS X 10.15.4 19E287, locale de-DE)
    • Flutter version 1.22.0 at /Users/bastianmeyer/flutter
    • Framework revision d408d302e2 (3 days ago), 2020-09-29 11:49:17 -0700
    • Engine revision 5babba6c4d
    • Dart version 2.10.0

 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/bastianmeyer/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0, Build version 12A7209
    • CocoaPods version 1.9.1

[✓] Android Studio (version 3.6)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 45.0.1
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)

[✓] VS Code (version 1.49.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.15.0

[✓] Connected device (1 available)
    • iPhone SE (2nd generation) (mobile) • FC1FC561-C5E6-4E13-AEE5-B5D9308C29B5 • ios • com.apple.CoreSimulator.SimRuntime.iOS-14-0 (simulator)

3 个答案:

答案 0 :(得分:1)

您使用的软件包尚未更新,无法设置最近添加的reverseTransitionDuration。 您可以对this问题进行投票以引起关注。

答案 1 :(得分:0)

这是指定正向和反向持续时间的一种方法:

Navigator.of(context).push(
  PageRouteBuilder(
    transitionDuration: Duration(milliseconds: 800), // Forward Duration
    reverseTransitionDuration: Duration(milliseconds: 800), // Reverse Duration
    pageBuilder: (BuildContext context,
        Animation<double> animation,
        Animation<double> secondaryAnimation) {
      return NewScreen();
    },
    transitionsBuilder: (BuildContext context,
        Animation<double> animation,
        Animation<double> secondaryAnimation,
        Widget child) {
      return FadeTransition(
        opacity: animation,
        child: child,
      );
    },
  ),
);

答案 2 :(得分:-1)

更新:版本1.1.7+3.不再是问题