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. List<NavigatorObserver> navigatorObservers = const <NavigatorObserver>[],
  11. TransitionBuilder? builder,
  12. String title = '',
  13. GenerateAppTitle? onGenerateTitle,
  14. Color? color,
  15. ThemeData? theme,
  16. ThemeData? darkTheme,
  17. ThemeData? highContrastTheme,
  18. ThemeData? highContrastDarkTheme,
  19. ThemeMode? themeMode = ThemeMode.system,
  20. Duration themeAnimationDuration = kThemeAnimationDuration,
  21. Curve themeAnimationCurve = Curves.linear,
  22. Locale? locale,
  23. Iterable<LocalizationsDelegate>? localizationsDelegates,
  24. LocaleListResolutionCallback? localeListResolutionCallback,
  25. LocaleResolutionCallback? localeResolutionCallback,
  26. Iterable<Locale> supportedLocales = const <Locale>[Locale('en', 'US')],
  27. bool debugShowMaterialGrid = false,
  28. bool showPerformanceOverlay = false,
  29. bool checkerboardRasterCacheImages = false,
  30. bool checkerboardOffscreenLayers = false,
  31. bool showSemanticsDebugger = false,
  32. bool debugShowCheckedModeBanner = true,
  33. Map<ShortcutActivator, Intent>? shortcuts,
  34. Map<Type, Action<Intent>>? actions,
  35. String? restorationScopeId,
  36. ScrollBehavior? scrollBehavior,
  37. @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}
)

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.

The boolean arguments, routes, and navigatorObservers, must not be null.

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,
  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,
}) : routeInformationProvider = null,
     routeInformationParser = null,
     routerDelegate = null,
     backButtonDispatcher = null,
     routerConfig = null;