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
: _primaryPositionCurve = CurvedAnimation(
parent: widget.primaryRouteAnimation, parent: widget.primaryRouteAnimation,
curve: Curves.fastEaseInToSlowEaseOut, curve: Curves.fastEaseInToSlowEaseOut,
reverseCurve: Curves.fastEaseInToSlowEaseOut.flipped, reverseCurve: Curves.fastEaseInToSlowEaseOut.flipped,
) );
).drive(_kRightMiddleTween); _secondaryPositionCurve = CurvedAnimation(
_secondaryPositionAnimation =
(widget.linearTransition
? widget.secondaryRouteAnimation
: _secondaryPositionCurve = CurvedAnimation(
parent: widget.secondaryRouteAnimation, parent: widget.secondaryRouteAnimation,
curve: Curves.linearToEaseOut, curve: Curves.linearToEaseOut,
reverseCurve: Curves.easeInToLinear, reverseCurve: Curves.easeInToLinear,
) );
).drive(_kMiddleLeftTween); _primaryShadowCurve = CurvedAnimation(
_primaryShadowAnimation =
(widget.linearTransition
? widget.primaryRouteAnimation
: _secondaryPositionCurve = CurvedAnimation(
parent: widget.primaryRouteAnimation, parent: widget.primaryRouteAnimation,
curve: Curves.linearToEaseOut, curve: Curves.linearToEaseOut,
) );
).drive(_CupertinoEdgeShadowDecoration.kTween); }
_primaryPositionAnimation = (_primaryPositionCurve ?? widget.primaryRouteAnimation)
.drive(_kRightMiddleTween);
_secondaryPositionAnimation = (_secondaryPositionCurve ?? widget.secondaryRouteAnimation)
.drive(_kMiddleLeftTween);
_primaryShadowAnimation = (_primaryShadowCurve ?? widget.primaryRouteAnimation)
.drive(_CupertinoEdgeShadowDecoration.kTween);
} }
@override @override