在Flutter中,当从屏幕B弹出回到屏幕A时,调用哪种方法

时间:2019-11-01 12:02:35

标签: flutter dart flutter-layout flutter-dependencies onbackpressed

我已经在屏幕B中更新了我的Sqlite表,并且还希望在屏幕A中反映该更改。 因此,当从屏幕B>屏幕A弹出时,没有任何更新。 在Android中,我们具有onResume()来使更改反映在活动A中。

我已经使用了小部件绑定观察器,但是如果应用程序背景为前景,则可以使用。

Navigator.of(context).pop();

3 个答案:

答案 0 :(得分:0)

您可以等待Navigator.push,当调用pop时,将在Navigator.push下面调用任何内容。例如:

await Navigator.push(SomePage());
/// This will be called after SomePage cals Navigator.pop();
doSomething();

答案 1 :(得分:0)

您可以从 second page 返回这样的数据:

// Second Page
Navigator.pop(context, 'result');

然后通过 first page 上的以下代码,您可以午餐 second page 并等待从它返回并获取数据。

// First Page
var result = await Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => SecondPage()),
);

答案 2 :(得分:-1)

使用颤振await Navigator.push().then((value) {”Triggered after pop back in here"}

现在您正在启动第二个屏幕并等待结果

Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => SecondRoute()),
).then((value) {
     // Triggered after pop back in here
});