respect disableAnimations flag

This commit is contained in:
Fabian Freund
2026-03-09 18:03:34 +01:00
parent a815a3529a
commit 0a8348b324
8 changed files with 102 additions and 19 deletions
+31
View File
@@ -81,6 +81,31 @@ bool _hasBrokenSurfaceContainerColors(ColorScheme scheme) {
scheme.surfaceContainerHighest == scheme.surface;
}
class _NoAnimationPageTransitionsBuilder extends PageTransitionsBuilder {
const _NoAnimationPageTransitionsBuilder();
@override
Widget buildTransitions<T>(
PageRoute<T> route,
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child,
) {
return child;
}
}
const _noAnimationPageTransitionsTheme = PageTransitionsTheme(
builders: {
TargetPlatform.android: _NoAnimationPageTransitionsBuilder(),
TargetPlatform.iOS: _NoAnimationPageTransitionsBuilder(),
TargetPlatform.linux: _NoAnimationPageTransitionsBuilder(),
TargetPlatform.macOS: _NoAnimationPageTransitionsBuilder(),
TargetPlatform.windows: _NoAnimationPageTransitionsBuilder(),
},
);
class _MainWidget extends HookConsumerWidget {
const _MainWidget();
@@ -257,11 +282,17 @@ class _MainWidget extends HookConsumerWidget {
theme: ThemeData(
useMaterial3: true,
colorScheme: lightColorScheme,
pageTransitionsTheme: disableAnimations
? _noAnimationPageTransitionsTheme
: null,
extensions: const <ThemeExtension<dynamic>>[AppColors.light],
),
darkTheme: ThemeData(
useMaterial3: true,
colorScheme: darkColorScheme,
pageTransitionsTheme: disableAnimations
? _noAnimationPageTransitionsTheme
: null,
extensions: const <ThemeExtension<dynamic>>[AppColors.dark],
),
themeMode: themeMode,