更改AnimationController的value属性时,奇怪的动画同步

时间:2018-07-29 04:15:59

标签: ios flutter flutter-animation flutter-sliver

我是Flutter的新手,自定义页面路由遇到了问题。 Flutter的CupertinoPageRoute很不错,但我想更改它的动画曲线。没有简单的方法可以执行此操作,因为该组件实现了很多东西,包括弹出手势,而这些东西是私有的。 因此,为了测试建议,我复制了CupertinoPageRoute并更改了所需的内容。

我所做的是:

  • transitionDuration更改为600毫秒。
  • 添加以下内容:final Cubic _kDefaultCubicCurve = new Cubic(0.3, 1.0, 0.15, 1.0);
  • 然后使用这个新的_kDefaultCubicCurve替换默认的缓入和缓出曲线。

列表上的最新更改是在CupertinoPageTransition构造函数中完成的:

CupertinoPageTransition({
        Key key,
        @required Animation<double> primaryRouteAnimation,
        @required Animation<double> secondaryRouteAnimation,
        @required this.child,
        @required bool linearTransition,
      }) : assert(linearTransition != null),
           _primaryPositionAnimation = linearTransition
             ? _kRightMiddleTween.animate(primaryRouteAnimation)
             : _kRightMiddleTween.animate(
                 new CurvedAnimation(
                   parent: primaryRouteAnimation,
                   curve: _kDefaultCubicCurve,
                   reverseCurve: _kDefaultCubicCurve.flipped,
                 )
               ),
           _secondaryPositionAnimation = _kMiddleLeftTween.animate(
             new CurvedAnimation(
               parent: secondaryRouteAnimation,
               curve: _kDefaultCubicCurve,
               reverseCurve: _kDefaultCubicCurve.flipped,
             )
           ),
           _primaryShadowAnimation = _kGradientShadowTween.animate(
             new CurvedAnimation(
               parent: primaryRouteAnimation,
               curve: _kDefaultCubicCurve,
             )
           ),
           super(key: key);

对于普通的推式和弹出式动画来说,它的效果很棒:

Animation Working Normally

但是当我使用弹出手势时,会发生奇怪的行为:

Animation With Problem

我不知道为什么会这样。 有人可以帮我吗?

This is the complete source file

很抱歉出现语法错误。英语不是我的主要语言。

0 个答案:

没有答案