首页 > 其他分享 >flutter MaterialApp介绍

flutter MaterialApp介绍

时间:2024-01-09 17:33:05浏览次数:32  
标签:MaterialApp null 应用程序 Colors 介绍 默认值 flutter 属性

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 作为最终的根组件。例如:

builder: (context, child) {
  // 进行一些全局初始化操作
  return child;
},

标签:MaterialApp,null,应用程序,Colors,介绍,默认值,flutter,属性
From: https://www.cnblogs.com/xbinbin/p/17954879

相关文章

  • IP防水等级划分及测试方法介绍
    在工业生产中,特别是可在户外使用的电子电器产品,对设备都会有不同等级的防尘防水要求。自动化仪表设备的外壳防护等级(IP代码/防尘防水),是保证设备正常运行、保证产品安全可靠性防护的一项重要指标。那么,在选择与使用仪表产品时,就要特别关注一下仪器仪表的防护等级,这对于正确**品选型,......
  • 预推免、夏令营:自我介绍与展示的文案该怎么说?
      本文对保研夏令营面试、考研复试时经常遇到的自我介绍、个人展示环节的注意事项与具体内容模板加以介绍。  前期我们分别就地图学与地理信息系统(GIS)保研夏令营面试题目:天大、中南、中山、北师、中科院以及保研夏令营与考研个人陈述文案模板等两个方面进行了介绍,大家可以直接......
  • 位段的介绍与使用
    1.0位段介绍:位段 位--二进制位位段的声明与结构是类似的,但是有两个不同:位段的成员必须是:int、unsignedint、signedint;位段成员名后面必须有一个冒号和一个数字。位段作用:可以很大程度上节省空间计算位段所占用的空间:structS{inta:2;intb:5;intc:10;intd:30......
  • Unity3D UGUI的Button组件的介绍及使用详解
    Unity3D是一款功能强大的游戏开发引擎,而UGUI是Unity3D提供的一套用户界面系统。在UGUI中,Button组件是最常用的组件之一,本文将详细介绍Button组件的使用方法和相关技术细节。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大......
  • HarmonyOS的简单介绍
    鸿蒙系统(HarmonyOS)是华为自主研发的一款面向全场景的分布式操作系统。其底层逻辑主要包括以下几个方面:分布式架构:鸿蒙系统采用了分布式架构设计,可以将不同的设备和服务进行高效整合。通过分布式技术,鸿蒙系统可以实现跨平台的功能,使得应用在不同的设备上能够获得一致的体验。分布式......
  • 【以太网交换机介绍】
    (文章目录)前言以太网交换机不仅提高了网络的数据处理能力,还优化了网络流量的管理。一、以太网交换机是什么?以太网交换机,简称为交换机,是一种关键的网络硬件设备,用于连接多个网络设备,如计算机、打印机和路由器,构成一个网络。它在局域网(LAN)中,负责接收来自连接设备的数据包,并根据......
  • MT6765芯片参数规格介绍_MTK联发科平台方案
    联发科MT6765八核处理器,采用12nmFinFET制程工艺,8*Cortex-A53架构,搭载安卓9.0/11.0/12.0系统,主频最高达2.3GHz,待机功耗可低至5ma。MT6765提供了LPDDR3和LPDDR4x内存的灵活选择,相较于上一代处理器,功耗降低了20%,性能提升了25%。MT6765采用IMGPowerVRGE8320GPU,运行频率高达680MH......
  • HTTP代理工作原理介绍 海外代理IP推荐
    HTTP协议即超文本传输协议,是Internet上进行信息传输时使用广泛的一种较为简单的通信协议。部分局域网对协议进行了限制,只允许用户通过HTTP协议访问外部网站。HTTP的功能支持“直接连接”和“通过HTTP代理”两种形式的连接,而选择其中的何种形式,要视用户所在网络的具体情况。http代理......
  • Dockfile 介绍
    4.1From(指定基础镜像)Dockerfile必须指定FROM,并且是第一行,属于构建命令。表示基于那个基础镜像来构建基础镜像可以是本地镜像也可以是远程仓库的镜像语法: FROMimagename4.2MAINTAINER(指定镜像作者信息)用来指定构建镜像的作者信息,方便后续通过dockerinspect命令查看,对镜像没有......
  • 求取植物冠层数据:CAN-EYE工具的使用方法介绍
      本文介绍植被冠层参数计算软件CAN-EYE的具体使用方法。  在文章CAN-EYE冠层数据模拟工具的下载、安装中,我们介绍了CAN-EYE软件的下载、安装方法;本文就对该软件的具体使用方法进行介绍。  CAN-EYE软件计算LAI、FVC等各类植被参数,都需要基于相机所拍摄的真彩色或黑白植被图......