【问题标题】:Which function is called when a screen is opened after popping from navigation stack?从导航堆栈弹出后打开屏幕时调用哪个函数?
【发布时间】:2019-03-27 19:00:47
【问题描述】:

我有 2 个屏幕 - 屏幕 A 和屏幕 B。我从屏幕 A 导航到屏幕 B。 当我通过从导航堆栈中弹出屏幕 B 返回屏幕 A 时,我想采取一些特定的操作。 我知道我可以使用didUpdateWidge,但我想不出一种有效的方法。 在这里使用Inherited Widget 正确吗?

【问题讨论】:

    标签: flutter navigation


    【解决方案1】:

    Navigator.push[Named] 返回一个Future,它在屏幕 B 弹出时完成。所以在弹出后添加你要执行的代码到then

      Navigator.pushNamed(context, '/someRoute').then((_) {/* do stuff here */});
    

    【讨论】:

      【解决方案2】:

      尝试使用WillPopScope。这个小部件允许捕捉返回按钮按下。

      【讨论】:

      • 就是当你从B屏往回按的时候,我想检测A屏又打开了。
      • MaterialApp 允许通过 NavigatorObservers。因此,您可以处理 Pop 事件并在您需要 previousRoute 时执行一些操作。
      猜你喜欢
      • 2021-03-22
      • 1970-01-01
      • 2020-07-27
      • 2013-02-19
      • 2022-01-20
      • 2018-04-12
      • 2022-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多