2
头图

用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); // 第二个就是需要传到参数
  }
}

siberiawolf
2.5k 声望853 粉丝

每天多学一点,幸福多攒一点。