因此,我在项目中使用了一个“警报”对话框,如果用户单击“确定”或“取消”,则应关闭该对话框,否则,如果用户未给出任何响应,则它应在30秒后自行消失。我当时在考虑使用setState
和Duration
或类似的方法,但无法准确找出。
答案 0 :(得分:0)
您可以使用Future.delayed
延迟执行操作:
// dialog builder
showDialog(context, builder: (BuildContext context) {
bool manuallyClosed = false;
Future.delayed(Duration(seconds: 30)).then((_) {
if (!manuallyClosed) {
Navigator.of(context).pop());
}
});
// Build the dialog window
// Set manuallyClosed to true on the OK or Cancel button tap
});