getThemeTransition method
Implementation
Transition? getThemeTransition() {
// On web, use lightweight fade transitions by default to avoid
// heavy GPU-intensive animations that can cause jank in browsers.
if (kIsWeb) return Transition.fade;
if (config.useStandaloneDesign) {
if (config.useCupertinoDesign) return Transition.cupertino;
final theme = config.materialTheme ?? material.ThemeData();
return switch (theme.pageTransitionsTheme.builders[theme.platform]) {
cupertino.CupertinoPageTransitionsBuilder() => Transition.cupertino,
material.ZoomPageTransitionsBuilder() => Transition.zoom,
material.FadeUpwardsPageTransitionsBuilder() => Transition.fade,
material.OpenUpwardsPageTransitionsBuilder() => Transition.native,
_ => null,
};
}
final platform = context.theme.platform;
final matchingTransition =
Sint.theme.pageTransitionsTheme.builders[platform];
switch (matchingTransition) {
case CupertinoPageTransitionsBuilder():
return Transition.cupertino;
case ZoomPageTransitionsBuilder():
return Transition.zoom;
case FadeUpwardsPageTransitionsBuilder():
return Transition.fade;
case OpenUpwardsPageTransitionsBuilder():
return Transition.native;
default:
return null;
}
}