一、路由跳转
1、直接跳转
Navigator.push( context,
new MaterialPageRoute(builder: (context) {
return new NewRoute();
}));
2、
先声明注册路由
routes:{
"new_page":(context)=>NewRoute(),
} ,
后跳转
Navigator.pushNamed(context, "new_page");
二、路由参数
传递方法:使用arguments
Navigator.of(context).pushNamed("new_page", arguments: "hi");
接收方法:在新的Route设置
class EchoRoute extends StatelessWidget {
@override
Widget build(BuildContext context) {
//获取路由参数
var args=ModalRoute.of(context).settings.arguments
//...省略无关代码
}
}
划重点:此外,传递参数还有一种方法
Navigator.push( context,
new MaterialPageRoute(builder: (context) {
return new EditNotePage(title:widget.title,content:widget.content);
}
)
);
后,在接收的Page中声明
class EditNotePage extends StatefulWidget {
String title,content; // 用来储存传递过来的值
EditNotePage(
{
Key key,
this.title ,
this.content
}
) : super(key: key);
@override
State<StatefulWidget> createState() => new EditNotePageState();
}