Flutter 如何使警报对话框在颤振30秒后消失?

Flutter 如何使警报对话框在颤振30秒后消失?,flutter,dart,flutter-animation,Flutter,Dart,Flutter Animation,因此,我在我的项目中使用了一个警报对话框,如果用户单击“确定”或“取消”,该对话框应该关闭,否则如果用户没有响应,它应该在30秒后自行消失。我想用设置状态和持续时间或类似的东西,但无法准确计算。您可以使用未来。延迟来进行延迟操作: // dialog builder showDialog(context, builder: (BuildContext context) { bool manuallyClosed = false; Future.delayed(Duration(secon

因此,我在我的项目中使用了一个警报对话框,如果用户单击“确定”或“取消”,该对话框应该关闭,否则如果用户没有响应,它应该在30秒后自行消失。我想用
设置状态
持续时间
或类似的东西,但无法准确计算。

您可以使用
未来。延迟
来进行延迟操作:

// 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
});

稍微更正一下。then()不能接受空参数函数,所以我使用then(({})@HarshilChaudhary从内存进行编码很有趣。