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

时间:2019-07-19 09:29:40

标签: flutter dart flutter-layout

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

当前的问题是我希望在每次显示给用户时刷新原始页面

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

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

我已尝试使用Navigator.push方法(Observer class方法),并尝试在用户按下返回键时进行监听。

,但是有多个页面可以提供独特的请求,我不想将所有人都与该首页链接起来。 就像单击Navigator.pop(context)方法时一样,我必须传递一些字符串。

有人知道吗 当用户使用Backkey返回页面时,如何刷新页面。

3 个答案:

答案 0 :(得分:1)

遇到相同的问题,以下内容对我有用(下面的代码在FirstPage()中):

Navigator.push( context, MaterialPageRoute( builder: (context) => SecondPage()), ).then((value) => setState(() {}));

SecondPage()弹出到FirstPage()后,“ then”语句将运行并刷新页面。

答案 1 :(得分:0)

NavigatorObserver可以收听路线更改。

您需要创建覆盖const utils = require('util'); (async () => { const browser = await puppeteer.launch({headless: false}) const page = await browser.newPage() const tessProcess = utils.promisify(tesseract.process); await page.setViewport(viewPort) await page.goto('example.com') await page.screenshot(options) const text = await tessProcess('new.png'); //YOU CAN USE text HERE///////////// await page.$eval('input[id=companyID]', (el, value) => el.value = value, text);//here too await browser.close() })() didPop等的实现。 然后,您可以将其传递到didPushnavigatorObservers

MaterialApp字段中

答案 2 :(得分:0)

Navigator.push解析为Future时,将返回一个MaterialPageRoute。您可以等待Future知道何时弹出其他视图。

示例

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