我启动一个模态底部工作表,然后使用返回的数据作为其未来。
var modalFuture = showModalBottomSheet(
// ...
);
modalFuture.then((data) {
// Use data
});
我通过以下方式从模态小部件返回数据:
Navigator.pop(context, data);
当完成与我设置的小部件的模式交互时,这非常有效。
在模式之外单击时遇到问题。单击模式外部会导致模式自动关闭(带有Navigator.pop(context)
称呼?)。我对这种关闭交互感到满意,但我想用它发回数据(用Navigator.pop(context, data)
称呼)。在 showModalBottomSheet 模态之外单击时是否可以覆盖隐式弹出?
您可以使用 WillPopScope 包装您的 ModalWidget。你可以看下面的例子
WillPopScope(
onWillPop: () async {
Navigator.pop(context, data);
return true; // return true if needs to be popped
},
child: ModelWidget(
…
),
);
这将确保使用后退按钮自动弹出时调用 Navigator.pop。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)