在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)
没问题。
答案 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);
},