用 flutter 路由跳转页面时,次要用到的就是 Navigator.push();
和Navigator.pop();
两个办法。
然而存在一个问题:
当我从主页跳转到另一个页面,再返回到主页时,主页并不能被动刷新。怎么解决呢?
答案时,当返回到主页时,监听到返回事件,而后被动触发主页刷新。
class PageOne extends StatefulWidget {
@override
_PageOneState createState() => new _PageOneState();
}
class _PageOneState extends State<PageOne> { // 第一个页面
_getRequests()async{print('这里进行操作');
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(child: RaisedButton(onPressed: ()=>
Navigator.of(context).push(new MaterialPageRoute(builder: (_)=>PageTwo()),)
.then((val)=>val?_getRequests():null), // 通过 then 进行监听回调参数
),
));
}
}
class PageTwo extends StatelessWidget { // 第二个页面
@override
Widget build(BuildContext context) {
//somewhere
Navigator.pop(context,true); // 第二个就是须要传到参数
}
}