Flutter Android以编程方式关闭/关闭ProgressHUD对话框而无需onPress

时间:2019-04-16 07:41:20

标签: android ios flutter

我刚刚进入并研究Android上的抖动。我想问一下ProgressHUD对话框。

如何以编程方式关闭/关闭ProgressHUD对话框?因为在文档中它是使用onPress来关闭对话框。我想要的是以编程方式关闭或关闭没有onPress的对话框。

谢谢。

下面的ProgressHUD对话框的库/软件包:

https://pub.dartlang.org/packages/progress_hud#-readme-tab-

以下代码将启动对话框:

    bool _loading = true;

    @override
    void initState() {
    super.initState();

    _progressHUD = new ProgressHUD(
      backgroundColor: Colors.black12,
      color: Colors.white,
      containerColor: Colors.blue,
      borderRadius: 5.0,
      text: 'Loading...',
    );

    //If I put in this line, there have an error, 
    //the state is null, the dismiss() function called on null.
    _progressHUD.state.dismiss();

  }

您可以看到是否将_progressHUD.state.dismiss();放在函数initState()中,这是一个错误,状态为null,调用dismiss()函数时引用了null。

以下代码用于关闭对话框:

_progressHUD.state.dismiss();

1 个答案:

答案 0 :(得分:1)

当窗口小部件尚未完全构建时,您将忽略init状态下的进度。因此,显示状态为空错误。要在初始化状态下或未完全设置状态下使用它,可以使用后框架回调。

        WidgetsBinding.instance.addPostFrameCallback((_) {
          _progressHUD.state.dismiss();
        });