如何自动加载对话框并消除抖动?

时间:2019-08-05 10:30:02

标签: flutter dart flutter-layout

我用过 Future.delayed(Duration.zero, () => welcomeDialogBoxx(context)); 在构建中,这是一种自动加载对话框的方法,但是存在问题,每当我浏览另一个屏幕时,对话框都会在该屏幕上进一步打开。 邓诺(Dunno)被解雇后,为什么还要继续加载。

这是为对话框定义的方法

welcomeDialogBoxx(BuildContext context) {
    return showDialog(
        context: context,
        builder: (BuildContext context) {
          return AlertDialog(
            .....
          );
        });
  }

1 个答案:

答案 0 :(得分:0)

这应该只打开一次对话框。从Build方法中删除Future并将以下代码添加到您的initState中:

 @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) => welcomeDialogBox(context));
  }