我有一个主页,当点击它时,它会通过导航将我带到另一个页面,在中执行一些操作,然后按后退按钮将我带回到主页.但问题是主页无法刷新.
当我按下后退按钮并刷新主页时,有没有办法重新加载页面?
我有一个主页,当点击它时,它会通过导航将我带到另一个页面,在中执行一些操作,然后按后退按钮将我带回到主页.但问题是主页无法刷新.
当我按下后退按钮并刷新主页时,有没有办法重新加载页面?
您可以在导航回第一个页面时触发API调用,如下所示pseudo-code
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
,它将不断侦听任何更改并代表您进行更新.