Navigator
Navigator用来管理堆栈功能(即push和pop),在Flutter的情况下,当我们导航到另一个屏幕时,我们使用Navigator.push方法将新屏幕添加到堆栈的顶部。当然,这些pop方法会从堆栈中删除该屏幕。
在push的时候使用自定义方法构建一个路由
Navigator.push( context, MaterialPageRoute(builder:(context) => new InfoPage(product: products[index])) );
这种方式可以传递参数。
使用Navigator的pop返回可返回上一级,并携带一个参数
Navigator.pop(context,'携带参数');
push和pushNamed
push与pushNames运行效果相同,只是接口的调用方式不同, 都是将一个界面压入栈中. 区别在于, push是亲手把界面扔入栈中, 而pushNames则是通过点名的方式通过router让界面自己进入栈中
// push的调用方法 Navigator.push(context, new MaterialPageRoute( builder: (context) { return Scaffold( appBar: AppBar( title: Text('我是新的界面'), ) ); } )); // pushNamed的调用方法 // 先在Router上定义Page; routes: <String, WidgetBuilder> { '/xiaoming': (_) => new XiaoMingPage(), } ... Navigator.pushNamed(context, '/XiaoMingPage');