MaterialApp constructor

const MaterialApp({
  1. Key? key,
  2. GlobalKey<NavigatorState>? navigatorKey,
  3. GlobalKey<ScaffoldMessengerState>? scaffoldMessengerKey,
  4. Widget? home,
  5. Map<String, WidgetBuilder> routes = const <String, WidgetBuilder>{},
  6. String? initialRoute,
  7. RouteFactory? onGenerateRoute,
  8. InitialRouteListFactory? onGenerateInitialRoutes,
  9. RouteFactory? onUnknownRoute,
  10. NotificationListenerCallback<NavigationNotification>? onNavigationNotification,
  11. List<NavigatorObserver> navigatorObservers = const <NavigatorObserver>[],
  12. TransitionBuilder? builder,
  13. String title = '',
  14. GenerateAppTitle? onGenerateTitle,
  15. Color? color,
  16. ThemeData? theme,
  17. ThemeData? darkTheme,
  18. ThemeData? highContrastTheme,
  19. ThemeData? highContrastDarkTheme,
  20. ThemeMode? themeMode = ThemeMode.system,
  21. Duration themeAnimationDuration = kThemeAnimationDuration,
  22. Curve themeAnimationCurve = Curves.linear,
  23. Locale? locale,
  24. Iterable<LocalizationsDelegate>? localizationsDelegates,
  25. LocaleListResolutionCallback? localeListResolutionCallback,
  26. LocaleResolutionCallback? localeResolutionCallback,
  27. Iterable<Locale> supportedLocales = const <Locale>[Locale('en', 'US')],
  28. bool debugShowMaterialGrid = false,
  29. bool showPerformanceOverlay = false,
  30. bool checkerboardRasterCacheImages = false,
  31. bool checkerboardOffscreenLayers = false,
  32. bool showSemanticsDebugger = false,
  33. bool debugShowCheckedModeBanner = true,
  34. Map<ShortcutActivator, Intent>? shortcuts,
  35. Map<Type, Action<Intent>>? actions,
  36. String? restorationScopeId,
  37. ScrollBehavior? scrollBehavior,
  38. @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,
  39. AnimationStyle? themeAnimationStyle,
})

Creates a MaterialApp.

At least one of home, routes, onGenerateRoute, or builder must be non-null. If only routes is given, it must include an entry for the Navigator.defaultRouteName (/), since that is the route used when the application is launched with an intent that specifies an otherwise unsupported route.

This class creates an instance of WidgetsApp.

Implementation

const MaterialApp({
  super.key,
  this.navigatorKey,
  this.scaffoldMessengerKey,
  this.home,
  Map<String, WidgetBuilder> this.routes = const <String, WidgetBuilder>{},
  this.initialRoute,
  this.onGenerateRoute,
  this.onGenerateInitialRoutes,
  this.onUnknownRoute,
  this.onNavigationNotification,
  List<NavigatorObserver> this.navigatorObservers = const <NavigatorObserver>[],
  this.builder,
  this.title = '',
  this.onGenerateTitle,
  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,
}) : routeInformationProvider = null,
     routeInformationParser = null,
     routerDelegate = null,
     backButtonDispatcher = null,
     routerConfig = null;