一尘不染

如何返回并刷新Flutter中的上一页?

flutter

我有一个主页,当单击该主页时,我会通过导航进入另一个页面,进行一些操作,然后按返回按钮,这会将我带回到该主页。但是问题是主页没有刷新。

当我按下返回按钮并刷新主页时,是否可以重新加载页面?


阅读 2494

收藏
2020-08-13

共1个答案

一尘不染

当您导航回首页时,可以触发API调用,例如此 伪代码

class PageOne extends StatefulWidget {
  @override
  _PageOneState createState() => new _PageOneState();
}

class _PageOneState extends State<PageOne> {
  _getRequests()async{

  }
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: new Center(
        child: new RaisedButton(onPressed: ()=>
        Navigator.of(context).push(new MaterialPageRoute(builder: (_)=>new PageTwo()),)
        .then((val)=>val?_getRequests():null),
      ),
    ));
  }
}

class PageTwo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    //somewhere
    Navigator.pop(context,true);
  }
}

或者,如果API经常更新,则可以使用流,新数据将在您的内部自动更新 ListView

例如使用firebase,我们可以做到这一点

stream: FirebaseDatabase.instance.reference().child(
      "profiles").onValue

而且,只要您更改数据库中的某些内容(例如,从“编辑个人资料”页面进行更改),该内容就会反映在您的个人资料页面上。在这种情况下,这仅是可能的,因为我正在使用onValue它将继续监听所有更改并代表您进行更新。

2020-08-13