MaterialApp.router constructor

const MaterialApp.router({
  1. Key? key,
  2. GlobalKey<ScaffoldMessengerState>? scaffoldMessengerKey,
  3. RouteInformationProvider? routeInformationProvider,
  4. RouteInformationParser<Object>? routeInformationParser,
  5. RouterDelegate<Object>? routerDelegate,
  6. RouterConfig<Object>? routerConfig,
  7. BackButtonDispatcher? backButtonDispatcher,
  8. TransitionBuilder? builder,
  9. String? title,
  10. GenerateAppTitle? onGenerateTitle,
  11. NotificationListenerCallback<NavigationNotification>? onNavigationNotification,
  12. Color? color,
  13. ThemeData? theme,
  14. ThemeData? darkTheme,
  15. ThemeData? highContrastTheme,
  16. ThemeData? highContrastDarkTheme,
  17. ThemeMode? themeMode = ThemeMode.system,
  18. Duration themeAnimationDuration = kThemeAnimationDuration,
  19. Curve themeAnimationCurve = Curves.linear,
  20. Locale? locale,
  21. Iterable<LocalizationsDelegate>? localizationsDelegates,
  22. LocaleListResolutionCallback? localeListResolutionCallback,
  23. LocaleResolutionCallback? localeResolutionCallback,
  24. Iterable<Locale> supportedLocales = const <Locale>[Locale('en', 'US')],
  25. bool debugShowMaterialGrid = false,
  26. bool showPerformanceOverlay = false,
  27. bool checkerboardRasterCacheImages = false,
  28. bool checkerboardOffscreenLayers = false,
  29. bool showSemanticsDebugger = false,
  30. bool debugShowCheckedModeBanner = true,
  31. Map<ShortcutActivator, Intent>? shortcuts,
  32. Map<Type, Action<Intent>>? actions,
  33. String? restorationScopeId,
  34. ScrollBehavior? scrollBehavior,
  35. @Deprecated('Remove this parameter as it is now ignored. ' 'MaterialApp never introduces its own MediaQuery; the View widget takes care of that. ' 'This feature was deprecated after v3.7.0-29.0.pre.') bool useInheritedMediaQuery = false,
  36. AnimationStyle? themeAnimationStyle,
})

Creates a MaterialApp that uses the Router instead of a Navigator.

If the routerConfig is provided, the other router related delegates, routeInformationParser, routeInformationProvider, routerDelegate, and backButtonDispatcher, must all be null.

Implementation

const MaterialApp.router({
  super.key,
  this.scaffoldMessengerKey,
  this.routeInformationProvider,
  this.routeInformationParser,
  this.routerDelegate,
  this.routerConfig,
  this.backButtonDispatcher,
  this.builder,
  this.title,
  this.onGenerateTitle,
  this.onNavigationNotification,
  this.color,
  this.theme,
  this.darkTheme,
  this.highContrastTheme,
  this.highContrastDarkTheme,
  this.themeMode = ThemeMode.system,
  this.themeAnimationDuration = kThemeAnimationDuration,
  this.themeAnimationCurve = Curves.linear,
  this.locale,
  this.localizationsDelegates,
  this.localeListResolutionCallback,
  this.localeResolutionCallback,
  this.supportedLocales = const <Locale>[Locale('en', 'US')],
  this.debugShowMaterialGrid = false,
  this.showPerformanceOverlay = false,
  this.checkerboardRasterCacheImages = false,
  this.checkerboardOffscreenLayers = false,
  this.showSemanticsDebugger = false,
  this.debugShowCheckedModeBanner = true,
  this.shortcuts,
  this.actions,
  this.restorationScopeId,
  this.scrollBehavior,
  @Deprecated(
    'Remove this parameter as it is now ignored. '
    'MaterialApp never introduces its own MediaQuery; the View widget takes care of that. '
    'This feature was deprecated after v3.7.0-29.0.pre.'
  )
  this.useInheritedMediaQuery = false,
  this.themeAnimationStyle,
}) : assert(routerDelegate != null || routerConfig != null),
     navigatorObservers = null,
     navigatorKey = null,
     onGenerateRoute = null,
     home = null,
     onGenerateInitialRoutes = null,
     onUnknownRoute = null,
     routes = null,
     initialRoute = null;