在Flutter中几秒钟后,如何使alertDialog自动消失?

时间:2018-12-04 14:57:37

标签: android dart flutter

点击按钮后将显示一个alertDialog,并在几秒钟后自动消失。如何在Flutter中做到这一点?

3 个答案:

答案 0 :(得分:2)

最小字符:

它在5秒钟后关闭alertDialog

           showDialog(
                      context: context,
                      builder: (context) {
                        Future.delayed(Duration(seconds: 5), () {
                          Navigator.of(context).pop(true);
                        });
                        return AlertDialog(
                          title: Text('Title'),
                        );
                      });

答案 1 :(得分:2)

Future.delayed可能会导致一些问题,如果您在触发Future之前关闭了对话框。 因此,如果您使用它,请注意showDialog不可关闭barrierDismissible: false,并且AlertDialog上没有用于将其关闭的按钮。

否则,您可以使用计时器:

Timer timer = Timer(Duration(milliseconds: 3000), (){
  Navigator.of(context, rootNavigator: true).pop();
});
showDialog(
  ... Dialog Code ...
).then((value){
  // dispose the timer in case something else has triggered the dismiss.
  timer?.cancel();
  timer = null;
});

答案 2 :(得分:1)

您可能想使用“ SnackBar”来显示自动消失的通知。

final snackBar = SnackBar(
  content: Text('This is where you put the notice.'),
  duration: Duration(seconds: 2),
);
Scaffold.of(context).showSnackBar(snackBar);