MaterialApp
属性名 | 类型 | 说明 |
---|---|---|
title | String | 标题 |
theme | ThemeData | 定义应用所使用的主题颜色,能够制定一个主题中每一个控件的颜色 |
color | Color | 应用的主要颜色值,即primary color |
home | Widget | 这个是一个Widget对象,用来定义一个主题中每一个控件的颜色 |
routes | Map<String,WidgetBuilder> | 定义应用中页面跳转的原则 |
initialRoute | String | 初始化路由 |
onGenerateRoute | RouteFactory | 路由回调函数,当经过Nacigator.of(context).pushNamed跳转路由时,在routes查找不到时,会调用该方法 |
onLocaleChanged | 当系统需改语言的时候,会触发这个回调 | |
nagavitorObserver | List<NavigatorObserver> | 导航观察器 |
debugShowMaterialGird | bool | 是否显示纸墨设计基础布局网格,用来调试UI的工具 |
showPerformanceOverlay | bool | 显示性能标签 |
路由动画
MaterialPageRoute
页面左右切换
构造函数
MaterialPageRoute({
WidgetBuilder builder,
RouteSettings settings,
bool maintainState = true,
bool fullscreenDialog = false,
})
- builder: 构建路由界面的具体内容,返回的是
widget
,通常要实现回调方法 - settings:路由的配置信息
- RouteSettings(arguments: arg)
- maintainState:维持路由的状态。默认将路由保存至内存中,设为
false
会将路由空闲时的内存释放 - fullscreenDialog:默认false
CupertinoPageRoute
页面上下切换
路由跳转Navigator
原理
通过入栈和出栈实现页面间的跳转
跳转方式(命名路由)
无参跳转
Navigator.pushNamed(context, routeName);
有参跳转
Navigator.pushNamed(context, routeName, arguments);
获取传进来的参数json:
dynamic data = ModalRoute.of(context).settings.arguments;
根据key获取value:
var v = data[key].toString();