WillPopScope我应该在Navigator.pop之后使用return Future.value(true)吗?

时间:2019-01-01 13:04:54

标签: flutter

return Future.value(false);之后使用Navigator.pop(context)是正确的方法。

如果我使用 Navigator.pop(context, false)及其之后 return Future.value(true);

按下返回按钮后,应用程序将显示黑屏,并且Logcat中没有错误。

但是如果我在没有Navigator.pop(context)或没有return Future.value(true);的情况下使用相同的代码,一切都会好起来的,使用return Future.value(false);也可以。

*在有关Udemy的教程上显示return Future.value(true)没问题。

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。 您应该使用return Future.value(false);。 您使用Navigator.pop(context)进行了手动导航,Future.value(true);触发了另一个弹出操作,因为您已经存在该页面,所以该弹出窗口使应用程序崩溃。

OnWillPop期望返回,因此使用return Future.value(false);告诉onWillPop您将在此处处理页面的关闭。

答案 1 :(得分:0)

onWillPop: () {
    Navigator.pop(context, 'ANY RETURN VALUE');
    return new Future(() => false);
  },