小编jqu*_*nno的帖子

Flutter AlertDialog,次解雇问题

我的应用程序在创建其页面之一时通过 AlertDialog 小部件显示欢迎消息。我想在 4 秒后自动关闭对话框,或者让用户通过点击对话框外来关闭它。

  void _showWelcomeDialog(BuildContext context) {

    final displayName = UserPageInherited.of(context).displayName;
    String bodyContent = "Welcome $displayName";

    var dialog = WelcomeAlertWidget(bodyContent);

    showDialog(
        context: context,
        builder: (context) {
          return dialog;
        });
  }
Run Code Online (Sandbox Code Playgroud)

welcomeAlertWidget 是一个 StatelessWidget,它返回一个 AlertDialog。

一旦 bloc 进入特定状态,我就会_showWelcomeDialog()在 a 中调用该函数BlocBuilder,如下所示:

WidgetsBinding.instance
  .addPostFrameCallback((_) => _showWelcomeDialog(context));

Future.delayed(const Duration(seconds: 4), () {
    setState(() {
    // Here you can write your code for open new view
    Navigator.of(context, rootNavigator: true).pop('dialog');
  });
});

Run Code Online (Sandbox Code Playgroud)

如果用户在 4 秒结束之前关闭对话框,并且 Future 返回,背景小部件就会消失,我会留下黑屏。我想知道是否有人可以帮助我避免这个问题。

谢谢

navigator android-alertdialog flutter

2
推荐指数
1
解决办法
856
查看次数

标签 统计

android-alertdialog ×1

flutter ×1

navigator ×1