尝试下面的代码希望对您有帮助。只需先点击按钮,然后警报打开,第一个警报关闭5 sec然后打开第二次警报
refer Future.delayed()
here https://api.flutter.dev/flutter/dart-async/Future/Future.delayed.html
TextButton(
onPressed: () => showDialog(
context: context,
builder: (BuildContext context) {
Future.delayed(Duration(seconds: 5), () {
Navigator.of(context).pop(true);
});
return AlertDialog(
title: const Text('AlertDialog Title'),
content: const Text('AlertDialog description'),
);
}).then((value) {
showDialog(
// Second dialog open
context: context,
builder: (BuildContext context) {
return AlertDialog(
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
Center(child: Text('Welcome')),
Text('Second Dialog')
],
),
actions: <Widget>[
TextButton(
onPressed: () => Navigator.pop(context, 'Cancel'),
child: const Text('Cancel'),
),
TextButton(
onPressed: () => Navigator.pop(context, 'OK'),
child: const Text('OK'),
),
],
);
},
);
}),
child: const Text('Show Dialog'),
)