如何使Flutter中的“警告对话框”在30秒后消失?

时间:2019-11-23 20:45:30

标签: flutter dart flutter-animation

因此,我在项目中使用了一个“警报”对话框,如果用户单击“确定”或“取消”,则应关闭该对话框,否则,如果用户未给出任何响应,则它应在30秒后自行消失。我当时在考虑使用setStateDuration或类似的方法,但无法准确找出。

1 个答案:

答案 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
});