Flutter MaterialApp

参数详解

属性说明
navigatorKey导航的key
home主页
routes路由(具体如何应用,如何完成跳转路由 见详情)
initialRoute初始路由
onGenerateRoute生成路由
onUnknownRoute位置路由
navigatorObservers导航的观察者
builderwidget的构建
title最近的应用程序中(任务管理器)  快照描述
onGenerateTitle

生成任务管理器显示的标题

color背景颜色
theme主题
darkTheme暗主题
localeapp语言支持
localizationsDelegates多语言代理
localeListResolutionCallback 
localeResolutionCallback多语言回调
supportedLocales支持的多语言,默认<Locale>[Locale('en', 'US')]
debugShowMaterialGrid显示网格,默认false
showPerformanceOverlay打开性能监控,覆盖在屏幕最上面,默认false
checkerboardRasterCacheImages打开光栅缓存图像的检查板,默认false
checkerboardOffscreenLayers打开渲染到屏幕外位图的图层的checkerboarding。,默认false
showSemanticsDebugger打开一个覆盖图,显示框架报告的可访问性信息 显示边框,默认false
debugShowCheckedModeBanner右上角显示一个debug的图标,默认true

代码示例

import 'package:flutter/material.dart';

void main(){
  runApp(MaterialApp(
    // home: Text('data'),
    home: Scaffold(appBar: AppBar(title: Text('Flutter MaterialApp'),),),

    // 跳转页面配置
    routes: <String, WidgetBuilder>{
      'a':(BuildContext context){
        new aPage();
      },
    } ,

    //初始路由,/ 为根路由,没有home时启动
    initialRoute: '/',

    //生成路由 home和initialRoute都未指定时启动
    onGenerateRoute: (RouteSettings settings) {
      return new MaterialPageRoute<void>(
        settings: settings,
        builder: (BuildContext context) => Text('生成了路由'),
      );
    },

    //未知路由 home、initialRoute、onGenerateRoute都未指定时启动
    onUnknownRoute: (RouteSettings settings) => MaterialPageRoute<void>(
      settings: settings,
      builder: (BuildContext context) => Text('路由找不到了')
    ),

    // 导航观察者
    navigatorObservers : <NavigatorObserver>[MyNavigatorObserver()],

    //这个是直接渲染这个builder,不会走路由,优先渲染这个里面的widget
    builder: (BuildContext context, Widget w) => Text("builder生成新的view"),
    
    //任务管理器 名称
    title: 'MaterialApp属性说明',

    //新的title
    onGenerateTitle: (BuildContext context){return '新的说明';},

    //任务管理器的标题背景颜色
    color: Colors.yellow,

    //主题
    theme: ThemeData(
      primarySwatch: Colors.red, 
      brightness: Brightness.light
    ),

    //暗主题
    darkTheme: ThemeData(
      primarySwatch: Colors.yellow, 
      brightness: Brightness.dark
    ),
    // locale: ,
    // localizationsDelegates: ,
    // localeListResolutionCallback: ,
    // localeResolutionCallback: ,
    supportedLocales :  <Locale>[
      const Locale('en', 'US'),
      const Locale('fi', 'FI'),
    ],
    // debugShowMaterialGrid: false,
    // showPerformanceOverlay: false: ,
    // checkerboardRasterCacheImages: false,
    // checkerboardOffscreenLayers: false,
    // showSemanticsDebugger: false,
    // debugShowCheckedModeBanner: true,
  ));
}






class MyNavigatorObserver extends NavigatorObserver {
  @override
  void didPush(Route route, Route previousRoute) {
    // 当调用Navigator.push时回调
    super.didPush(route, previousRoute);
    //可通过route.settings获取路由相关内容
    print(route.settings);
    print(previousRoute);
  }

  @override
  void didPop(Route route, Route previousRoute) {
    // 当调用Navigator.pop时回调
    super.didPop(route, previousRoute);
    print(route);
    //route.currentResult获取返回内容
    print(previousRoute);
  }

  @override
  void didRemove(Route route, Route previousRoute) {
    // 当调用Navigator.Remove时回调
    super.didRemove(route, previousRoute);
    print(route);
    print(previousRoute);
  }
}

效果图

完整代码

查看完整代码

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马志武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值