首页 > 解决方案 > Flutter Android 在没有 onPress 的情况下以编程方式关闭/关闭 ProgressHUD 对话框

问题描述

我刚进入并学习 Android 上的 Flutter。我想问一下 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();in 函数initState()有一个错误,即 state 为 null,dismiss() 函数在 null 引用上调用。

下面的代码用于关闭对话框:

_progressHUD.state.dismiss();

标签: androidiosflutter

解决方案


当小部件未完全构建时,您将在初始化状态下取消进度。因此,显示状态空错误。要在初始化状态或状态未完全设置时使用它,您可以使用 postframe 回调。

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

推荐阅读