flutter MaterialApp介绍

发布时间 2024-01-09 17:31:55作者: 鲤斌

MaterialApp 是 Flutter 中常用的一个 widget,它是构建基于 Material Design 风格应用的根组件,主要负责各种全局状态的管理以及定义应用程序的主题样式等。

void main() {
  runApp(MaterialApp(
      title: "flutterAPP___test",
      theme: ThemeData(
        primarySwatch: Colors.yellow,
      ),
// showPerformanceOverlay: true, //性能显示
// debugShowCheckedModeBanner: false, //去除bug图标
// debugShowMaterialGrid: true, //网格
// checkerboardOffscreenLayers: true,//检查不必要的setlayer
// showSemanticsDebugger: true, //元素位置
      home: Scaffold(
          // appBar: AppBar(title: const Text("这是导航栏", textDirection: TextDirection.rtl)),
          body: MyFlutter1())));

1. home

属性类型:Widget

默认值:null

home 属性指定应用程序的主屏幕,是一个 Widget 对象,通常是一个页面的根组件。当应用程序启动时,会自动显示在屏幕上。例如:home: HomePage()

2. title

属性类型:String

默认值:''

title 属性指定应用程序的标题,会在应用程序的顶部和任务管理器的标签上显示。例如:title: 'My App'

3. theme

属性类型:ThemeData

默认值:ThemeData.light();

 ThemeData(
        // 设置整体亮度模式为明亮
        brightness: Brightness.light,
        // 设置应用程序的主要颜色
        primaryColor: Colors.blue,
        // 设置主要颜色的亮度模式为暗色
        primaryColorBrightness: Brightness.dark,
        // 设置主要颜色的浅色版本
        primaryColorLight: Colors.lightBlue,
        // 设置主要颜色的暗色版本
        primaryColorDark: Colors.darkBlue,
        // 设置强调颜色
        accentColor: Colors.yellow,
        // 设置强调颜色的亮度模式为暗色
        accentColorBrightness: Brightness.dark,
        // 设置脚手架的背景颜色
        scaffoldBackgroundColor: Colors.white,
        // 自定义按钮样式
        buttonTheme: ButtonThemeData(
          // 设置按钮的颜色
          buttonColor: Colors.blue,
          // 设置按钮的形状
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(8.0),
          ),
        ),

4. routes

属性类型:Map<String, WidgetBuilder>

默认值:null

routes 属性定义应用程序的路由映射表,即定义不同路径对应的页面组件。这样可以通过路由名称导航到不同的页面。

routes: {
  '/home': (context) => HomePage(),
  '/detail': (context) => DetailPage(),
},

5. initialRoute

属性类型:String

默认值:null

initialRoute 属性定义应用程序启动后显示的初始路由。例如:initialRoute: '/home'

6. onGenerateRoute

属性类型:(RouteSettings settings) -> Route<dynamic>)

默认值:null

onGenerateRoute 属性在使用命名路由导航到一个未定义的路由时会被调用,可以通过该方法动态生成对应的页面。

onGenerateRoute: (settings) {
  if (settings.name == '/profile') {
    return MaterialPageRoute(builder: (context) => ProfilePage());
  }
  return null;
},

7. onUnknownRoute

属性类型:(RouteSettings settings) -> Route<dynamic>)

默认值:null

onUnknownRoute 属性在无法找到任何路由时会被调用,可以在这里显示一个错误页面或其他处理逻辑。例如:

onUnknownRoute: (settings) {
  return MaterialPageRoute(builder: (context) => ErrorPage());
},

8. builder

属性类型:(BuildContext context, Widget child) -> Widget

默认值:null

builder 属性在构建 MaterialApp 时可以使用该方法,可以在构建 MaterialApp 之前执行一些全局初始化的操作,返回一个 Widget 作为最终的根组件。例如: