我试图在一秒钟后自动隐藏一个 alertDialog
这是代码:
Widget popupWidget(BuildContext context, ...) {
Future.delayed(Duration(seconds: 1), () {
Navigator.of(context).pop();
});
return AlertDialog(...);}
什么有效:
我可以点击屏幕上的其他地方来关闭 alertDialog
我可以等一秒钟,它会自动关闭
错误:
如果,在(确切地?)一秒钟之后,我点击屏幕上的其他地方(关闭 alertDialog),Future.delayed(...) 将不会隐藏 alertDialog,而是隐藏整个屏幕
我没有成功尝试使 showDialog
异步,也尝试了行
Navigator.of(context, rootNavigator: true).pop();
最佳答案
我想我已经找到了解决方法:
bool popupIsActive = true;
Future.delayed(Duration(seconds: 1), () {
if (popupIsActive) Navigator.of(context).pop();
});
和
showDialog(...).then((_) {
popupIsActive = false;
});
关于flutter - 如何使用 Navigator.of(context).pop() 在一秒后隐藏 alertDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57395314/