【发布时间】:2020-03-19 13:55:28
【问题描述】:
所以我在我的项目中使用了一个警报对话框,如果用户单击“确定”或“取消”,它应该关闭,否则如果用户没有响应,它应该在 30 秒后自行消失。我正在考虑使用 setState 和 Duration 或类似的东西,但无法完全弄清楚。
【问题讨论】:
标签: flutter dart flutter-animation
所以我在我的项目中使用了一个警报对话框,如果用户单击“确定”或“取消”,它应该关闭,否则如果用户没有响应,它应该在 30 秒后自行消失。我正在考虑使用 setState 和 Duration 或类似的东西,但无法完全弄清楚。
【问题讨论】:
标签: flutter dart flutter-animation
您可以使用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
});
【讨论】: