Improve animation

This commit is contained in:
2025-01-29 21:22:46 +08:00
parent a3e758831b
commit 6530f2c57d

View File

@@ -121,8 +121,13 @@ mixin _AppRouteTransitionMixin<T> on PageRoute<T> {
@override @override
Widget buildTransitions(BuildContext context, Animation<double> animation, Widget buildTransitions(BuildContext context, Animation<double> animation,
Animation<double> secondaryAnimation, Widget child) { Animation<double> secondaryAnimation, Widget child) {
child = ColoredBox(
color: FluentTheme.of(context).micaBackgroundColor,
child: child,
);
if (isRoot) { if (isRoot) {
return EntrancePageTransition( child = EntrancePageTransition(
animation: CurvedAnimation( animation: CurvedAnimation(
parent: animation, parent: animation,
curve: FluentTheme.of(context).animationCurve, curve: FluentTheme.of(context).animationCurve,
@@ -135,21 +140,25 @@ mixin _AppRouteTransitionMixin<T> on PageRoute<T> {
child: child) child: child)
: child, : child,
); );
} else {
child = DrillInPageTransition(
animation: CurvedAnimation(
parent: animation,
curve: FluentTheme
.of(context)
.animationCurve,
),
child: enableIOSGesture && App.isIOS
? IOSBackGestureDetector(
gestureWidth: _kBackGestureWidth,
enabledCallback: () => _isPopGestureEnabled<T>(this),
onStartPopGesture: () => _startPopGesture(this),
child: child)
: child,
);
} }
return DrillInPageTransition( return child;
animation: CurvedAnimation(
parent: animation,
curve: FluentTheme.of(context).animationCurve,
),
child: enableIOSGesture && App.isIOS
? IOSBackGestureDetector(
gestureWidth: _kBackGestureWidth,
enabledCallback: () => _isPopGestureEnabled<T>(this),
onStartPopGesture: () => _startPopGesture(this),
child: child)
: child,
);
} }
IOSBackGestureController _startPopGesture(PageRoute<T> route) { IOSBackGestureController _startPopGesture(PageRoute<T> route) {
@@ -427,9 +436,7 @@ class EntrancePageTransition extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ColoredBox( return SlideTransition(
color: FluentTheme.of(context).micaBackgroundColor,
child: SlideTransition(
position: Tween<Offset>( position: Tween<Offset>(
begin: const Offset(0, 0.1), begin: const Offset(0, 0.1),
end: Offset.zero, end: Offset.zero,
@@ -438,7 +445,6 @@ class EntrancePageTransition extends StatelessWidget {
opacity: animation, opacity: animation,
child: child, child: child,
), ),
),
); );
} }
} }