当用户使用返回键从任何其他页面返回时如何刷新页面?

Vic*_*khe 5 dart flutter flutter-layout

我有一个页面调用多个类和不同的小部件,用户可以通过单击它跳转到任何页面。

目前的问题是我想在每次向用户显示原始页面时刷新它

当它刚加载时(暂时没有问题)。

当用户使用返回键从其他页面返回时。旧数据显示在页面上,我正试图摆脱它。

我尝试过使用Navigator.push方法 ( Observer classmethod) 并尝试在用户按下返回键时进行收听。

但是有多个页面提供独特的请求,我不想将每个人都链接到第一页。在单击Navigator.pop(context)方法时,我必须传递一些字符串。

有谁知道当用户使用返回键返回页面时如何刷新页面。

Aji*_* O. 11

Navigator.pushFutureMaterialPageRoute传入它的被解析时返回一个。你可以等待Future知道什么时候其他的视图又弹出来了。

例子,

Navigator.of(context).push(MaterialPageRoute(
  builder: 
    (context) => NewView(),
  ),
).then((_) {
  // Call setState() here or handle this appropriately
});
Run Code Online (Sandbox Code Playgroud)

  • 我已经在我的问题中提到我已经尝试过这种方法,请阅读问题,该方法在我的用例中不可行。 (2认同)

小智 5

有同样的问题,以下对我有用(下面的代码在FirstPage()):

Navigator.push( context, MaterialPageRoute( builder: (context) => SecondPage()), ).then((value) => setState(() {}));
Run Code Online (Sandbox Code Playgroud)

当您从弹出回来SecondPage()FirstPage()了“然后”声明将运行并刷新页面。


Mik*_*kin 1

NavigatorObserver可以监听路线变化。

您需要创建您的实现覆盖等didPopdidPush然后您可以将其传递给或navigatorObservers的字段MaterialAppNavigator