我是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);
对于普通的推式和弹出式动画来说,它的效果很棒:
但是当我使用弹出手势时,会发生奇怪的行为:
我不知道为什么会这样。 有人可以帮我吗?
This is the complete source file。
很抱歉出现语法错误。英语不是我的主要语言。