defaultAdaptiveTransition static method
Default platform-adaptive route transition strategy:
- If the route specifies a non-default transition (e.g.,
fade,scale,none), it is preserved. - Web / Desktop (Windows, Linux):
RouteTransition.only_heroto avoid jarring side-slides. - iOS / macOS:
RouteTransition.slide_cupertinofor native parallax slide and edge shadow. - Android / Fuchsia:
RouteTransition.shared_axis_xfor Material 3 directional motion.
Implementation
static RouteTransition defaultAdaptiveTransition(BrowserRoute route) {
if (route.routeTransition != RouteTransition.slide_right) {
return route.routeTransition;
}
if (kIsWeb) {
return RouteTransition.only_hero;
}
return switch (defaultTargetPlatform) {
TargetPlatform.iOS ||
TargetPlatform.macOS => RouteTransition.slide_cupertino,
TargetPlatform.android ||
TargetPlatform.fuchsia => RouteTransition.shared_axis_x,
TargetPlatform.windows ||
TargetPlatform.linux => RouteTransition.only_hero,
};
}