gpt4 book ai didi

flutter - 在 showModalBottomSheet 外部单击时如何控制传递给 Navigator.pop() 的内容?

转载 作者:行者123 更新时间:2023-12-03 03:04:49 25 4
gpt4 key购买 nike

我启动一个模态底部工作表,然后使用返回的数据作为它的 future 。

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。

关于flutter - 在 showModalBottomSheet 外部单击时如何控制传递给 Navigator.pop() 的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59095111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com