一尘不染

导航后打开抖动对话框

flutter

我称导航器pushReplacement为在我的flutter应用程序中显示一个新视图,并希望立即弹出一个简单对话框,向用户介绍该页面。(我希望用户能够在后台看到新视图)

如果我在窗口小部件的构建方法中调用showDialog,然后从构建方法返回窗口小部件(脚手架),则会出现错误,表明flutter已经在绘制窗口小部件。我希望我需要侦听构建完成事件,然后调用showDialog。

关于如何做到这一点的指导深表感谢。


阅读 268

收藏
2020-08-13

共1个答案

一尘不染

您可以从“ initState()”内部调用对话框,以在绘制第一帧后立即保留其外观。

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) async {
      await showDialog<String>(
        context: context,
        builder: (BuildContext context) => new AlertDialog(
              title: new Text("title"),
              content: new Text("Message"),
              actions: <Widget>[
                new FlatButton(
                  child: new Text("OK"),
                  onPressed: () {
                    Navigator.of(context).pop();
                  },
                ),
              ],
            ),
      );
    });
  }
2020-08-13