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