7

Navigator.pop()当用户单击返回或在第二个屏幕中使用时,我正在尝试运行某种方法。

我有两个屏幕。

  1. 设定画面
  2. 编辑画面

编辑后,我将用户弹出到第一秒。现在在我使用的第一个屏幕中SharedPreference。但是当用户回到第一个屏幕时,我需要重新运行一个方法。我怎样才能做到这一点?

4

1 回答 1

9

Edit从屏幕导航到屏幕时Settings,使用它(在Settings屏幕内)

Navigator.pushNamed(context, "/editScreen").then((_) {
  // you have come back to your Settings screen 
  yourSharedPreferenceCode();
});

如果您只想在Edit屏幕上发生的某些事件上运行此代码,则可以使用屏幕pop内的方法,Edit例如

Navigator.pop(context, true); // pass true value

上面的代码应该是:

Navigator.pushNamed(context, "/editScreen").then((value) {
  if (value) // if true and you have come back to your Settings screen 
    yourSharedPreferenceCode();
});

编辑:

async-await看起来像:

bool value = await Navigator.pushNamed(context, "/editScreen");
if (value) // if true and you have come back to your Settings screen 
  yourSharedPreferenceCode();
于 2019-10-14T15:05:48.753 回答