1、跳转
Navigator.push(context, MaterialPageRoute(builder: (context) {
return NewRoute();
}));
MaterialPageRoute
MaterialPageRoute({
WidgetBuilder builder,
RouteSettings settings,
bool maintainState = true,
bool fullscreenDialog = false,
})
builder:是一个WidgetBuilder类型的回调函数,它的作用是构建路由页面的具体内容,返回值是一个widget。我们通常要实现此回调,返回新路由的实例。
settings:包含路由的配置信息,如路由名称、是否初始路由(首页)。
maintainState:默认情况下,当入栈一个新路由时,原来的路由仍然会被保存在内存中,如果想在路由没用的时候释放其所占用的所有资源,可以设置maintainState为false。
fullscreenDialog:表示新的路由页面是否是一个全屏的模态对话框,在iOS中,如果fullscreenDialog为true,新页面将会从屏幕底部滑入(而不是水平方向)。
等价于
Navigator.push(BuildContext context, Route route)
等价于
Navigator.of(context).push(Route route)
路由传参
//传值
Navigator.of(context).pushNamed("new_page", arguments: "hi");
//新页面接收
var data = ModalRoute.of(context).settings.arguments;