用Flutter路由跳转页面时,主要用到的就是Navigator.push();
和Navigator.pop();
两个方法。
但是存在一个问题:
当我从主页跳转到另一个页面,再返回到主页时,主页并不能主动刷新。怎么解决呢?
答案时,当返回到主页时,监听到返回事件,然后主动触发主页刷新。
代码语言:javascript复制 1class PageOne extends StatefulWidget {
2 @override
3 _PageOneState createState() => new _PageOneState();
4}
5
6class _PageOneState extends State<PageOne> { // 第一个页面
7 _getRequests()async{
8 print('这里进行操作');
9 }
10 @override
11 Widget build(BuildContext context) {
12 return Scaffold(
13 body: Center(
14 child: RaisedButton(onPressed: ()=>
15 Navigator.of(context).push(new MaterialPageRoute(builder: (_)=>PageTwo()),)
16 .then((val)=>val?_getRequests():null), // 通过then进行监听回调参数
17 ),
18 ));
19 }
20}
21
22class PageTwo extends StatelessWidget { // 第二个页面
23 @override
24 Widget build(BuildContext context) {
25 //somewhere
26 Navigator.pop(context,true); // 第二个就是需要传到参数
27 }
28}