首页 > 其他分享 >新的MaterialApp组件

新的MaterialApp组件

时间:2024-06-14 22:59:58浏览次数:24  
标签:MaterialApp 组件 GetMaterialApp 属性 路由 页面

文章目录


我们在上一章回中介绍了"Get包简介"相关的内容,本章回中将介绍GetMaterialApp组件.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 知识回顾

我们在上一章回中已经介绍过GetMaterialApp组件,并且介绍了它的基本用法,不过这些用法都是基于项目或者页面来使用该组件,本章回中将介绍该组件的属性,通
过属性来控制该组件的功能。

2. 使用方法

2.1 源码分析

我们在使用GetMaterialApp组件时担心它比官方的MaterialApp组件性能低,分析源代码后发现,它本质上还是MaterialApp,只是把MaterialApp组件的一些
配置做了修改,这样方便开人员使用,因此不用担心性能等其它问题,而且这个在官方文档中也有相关的介绍。下面是从源代码中获取的部分代码,请大家参考:

///它包含了一些常用的key
    this.navigatorKey,
    this.scaffoldMessengerKey,

///对路由的配置
    this.home,
    Map<String, Widget Function(BuildContext)> this.routes =
        const <String, WidgetBuilder>{},
    this.initialRoute,
    this.onGenerateRoute,
///主题,国际化相关配置和MaterialApp一致
    theme,
    this.darkTheme,
    this.locale,

2.2 常用属性

和其它的组件类似GetMaterialApp组件提供相关的属性来控制自己,下面是一些常用的属性:

  • home属性:用来控制程序的主页;
  • initialRoute属性:用来控制的根路由;
  • getPages属性:用来存放命名路由的集合;
  • theme属性:用来控制程序的主题;
  • localizationsDelegates属性:用来控制程序支持的语言;
    上面的这些属性中Home属性不能与路由属性同时使用,否则会有冲突。大部分情况下使用的是路由相关的属性,因为这样可以对程序中的多个页面提供导航。该组件中还
    有其它的属性,大家可以自己去探索。总之,它的用法和MaterialApp组件的十分相似。

3. 示例代码

GetMaterialApp(
  // home: GetHomePage(),
  ///配置好路由后可以使用命名路由,配置方法和Material方法相同
  initialRoute: '/',
  getPages: [
    GetPage(name: '/', page: () => const GetHomePage(),),
    GetPage(name: '/overlay', page: () => const ExOverlayEntry(),),
    GetPage(name: '/html', page: () => const ExHtmlView(),),
  ],
  theme: ThemeData(
    ///建议打开Material主题,否则页面风格太难看
    useMaterial3: true,
  ),
);

上面的示例代码中演示了GetMaterialApp组件中常用属性的用法。代码中使用了三个页面,这些页面是我们项目中的页面,我们没有提供页面的实现代码,因为我们是
为了演示路由功能,大家把这三个页面换成自己创建的页面就可以。我在这里就不演示程序的运行结果了,建议大家自己动手去实践。

4. 内容总结

最后,我们对本章回中的内容做一个全面的总结:

  • GetMaterialApp组件基于MaterialApp组件实现,可以放心使用;
  • GetMaterialApp组件提供属性来控制自己,用法类似MaterialApp组件;
  • GetMaterialApp组件在项目中通常通过路由相关的属性来进行页面导航;
    看官们,与"GetMaterialApp组件"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

标签:MaterialApp,组件,GetMaterialApp,属性,路由,页面
From: https://blog.csdn.net/talk_8/article/details/139691530

相关文章

  • 鸿蒙开发:应用组件跨设备交互(流转)【概述】
    流转概述场景介绍随着全场景多设备的生活方式不断深入,用户拥有的设备越来越多,不同设备都能在适合的场景下提供良好的体验,例如手表可以提供及时的信息查看能力,电视可以带来沉浸的观影体验。但是,每个设备也有使用场景的局限,例如在电视上输入文本相对移动设备来说是非常糟糕......
  • 鸿蒙开发:应用组件跨设备交互(流转)【跨端迁移】
    跨端迁移概述在用户使用设备的过程中,当使用情境发生变化时(例如从室内走到户外或者周围有更适合的设备等),之前使用的设备可能已经不适合继续当前的任务,此时,用户可以选择新的设备来继续当前的任务,原设备可按需决定是否退出任务,这个就是跨端迁移的场景。常见的跨端迁移场景实......
  • 鸿蒙开发:应用组件跨设备交互(流转)【多端协同】
    多端协同功能描述多端协同主要包括如下场景:[通过跨设备启动UIAbility和ServiceExtensionAbility组件实现多端协同(无返回数据)][通过跨设备启动UIAbility组件实现多端协同(获取返回数据)][通过跨设备连接ServiceExtensionAbility组件实现多端协同][通过跨设备Call调用实现多......
  • 【React】在 React 组件中,怎么使用useContext
    在React中,useContext是一个Hook,它允许你无需显式地通过组件树的每一层来传递props,就能将值深入到组件树的任何位置。要使用useContext,你需要先创建一个Context对象,然后使用这个对象提供的Provider组件来包裹你的应用中的一部分。然后,任何在这个Provider下的组件都......
  • uni-app项目button组件去不掉的灰色边框爬坑
    前情uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验非常棒,公司项目就是主推uni-app。坑位最近在开发个人中心的时候,需要用到微信头像和昵称的,微信的用户信息获取经过了几番调整,目前已不再提供获取用户头像和昵称的......
  • 组件/框架设计原则
    Windows应用软件开发,会有很多常用的模块,比如数据库、配置文件、日志、后台通信、进程通信、埋点、浏览器等等。下面是目前我们公司windows梳理的部分组件,梳理出来方便大家了解组件概念以及依赖关系:每个应用里,现在或者以后都可能会存在这些模块。以我团队开发的全家桶为例,十多......
  • React小记(二)_组件通信、生命周期、hooks等
    10、组件通信(父=>子)10.1基本使用1、传递方式与函数组件一致2、接收时通过this.props.mes获取importReactfrom'react'classSonextendsReact.PureComponent{render(){return(<><h3>子组件</h3>{/*2、接收*/}......
  • 开源组件小记
    分布式ID生成服务:leaf监控:cat实时应用监控平台配置中心:apolloJAVA诊断工具:arthas数据库连接池:druid消息中间件:rocketmq服务注册中心:nacos动态服务发现、配置和服务管理而设计。它可以帮助您轻松构建云原生应用程序和微服务平台服务治理:S......
  • 【第七篇】SpringSecurity核心组件和核心过滤器
    一、SpringSecurity中的核心组件在SpringSecurity中的jar分为4个,作用分别为jar作用spring-security-coreSpringSecurity的核心jar包,认证和授权的核心代码都在这里面spring-security-config如果使用SpringSecurityXML命名空间进行配置或者SpringSecurity的<br......
  • 界面组件DevExpress Office File API - 如何用OpenAI增强文档可访问性(二)
    DevExpressOfficeFileAPI是一个专为C#,VB.NET和ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装MicrosoftOffice,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS,XLSx,DOC,DOCx,RTF,CSV和SnapReport等企业级文......