Fix more memory leaks in cupertino page transition (#147907)

This commit is contained in:
Valentin Vignal 2024-05-08 10:07:04 +08:00 committed by GitHub
parent aa9cf009c2
commit ab8b2f7e53
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -457,32 +457,28 @@ class _CupertinoPageTransitionState extends State<CupertinoPageTransition> {
} }
void _setupAnimation() { void _setupAnimation() {
_primaryPositionAnimation = if (!widget.linearTransition) {
(widget.linearTransition _primaryPositionCurve = CurvedAnimation(
? widget.primaryRouteAnimation parent: widget.primaryRouteAnimation,
: _primaryPositionCurve = CurvedAnimation( curve: Curves.fastEaseInToSlowEaseOut,
parent: widget.primaryRouteAnimation, reverseCurve: Curves.fastEaseInToSlowEaseOut.flipped,
curve: Curves.fastEaseInToSlowEaseOut, );
reverseCurve: Curves.fastEaseInToSlowEaseOut.flipped, _secondaryPositionCurve = CurvedAnimation(
) parent: widget.secondaryRouteAnimation,
).drive(_kRightMiddleTween); curve: Curves.linearToEaseOut,
_secondaryPositionAnimation = reverseCurve: Curves.easeInToLinear,
(widget.linearTransition );
? widget.secondaryRouteAnimation _primaryShadowCurve = CurvedAnimation(
: _secondaryPositionCurve = CurvedAnimation( parent: widget.primaryRouteAnimation,
parent: widget.secondaryRouteAnimation, curve: Curves.linearToEaseOut,
curve: Curves.linearToEaseOut, );
reverseCurve: Curves.easeInToLinear, }
) _primaryPositionAnimation = (_primaryPositionCurve ?? widget.primaryRouteAnimation)
).drive(_kMiddleLeftTween); .drive(_kRightMiddleTween);
_primaryShadowAnimation = _secondaryPositionAnimation = (_secondaryPositionCurve ?? widget.secondaryRouteAnimation)
(widget.linearTransition .drive(_kMiddleLeftTween);
? widget.primaryRouteAnimation _primaryShadowAnimation = (_primaryShadowCurve ?? widget.primaryRouteAnimation)
: _secondaryPositionCurve = CurvedAnimation( .drive(_CupertinoEdgeShadowDecoration.kTween);
parent: widget.primaryRouteAnimation,
curve: Curves.linearToEaseOut,
)
).drive(_CupertinoEdgeShadowDecoration.kTween);
} }
@override @override