0

我试图在发出 http 请求时弹出对话框,为此我创建了在屏幕上显示对话框的函数。

这是我的代码。

class AppLoader {
  static Future<void> showLoadingDialog(BuildContext context, GlobalKey key) async {
    return showDialog(
      context: context,
      barrierDismissible: false,
      builder: (ctx) {
        return new WillPopScope(
          onWillPop: () async => false, 
          child: SimpleDialog(
            key: key,
            backgroundColor: Colors.white70,
            children: <Widget>[
              Center( 
                child: Column(children: <Widget>[
                  CircularProgressIndicator(),
                  SizedBox(height: 10),
                  Text('Please wait...', style: TextStyle(color: Colors.black))
                ],),
              )
            ],
          )
        );
      }
    );
  }
}

并像下面这样调用它:

AppLoader.showLoadingDialog(context, _keyLoader);

输出如下图。

在此处输入图像描述

如您所见,在中心显示了矩形白色背景形状的框。我想删除那个白色背景。

我也尝试设置backgroundColor: Colors.transparent,但它不起作用。它看起来更有线的 UI。 在此处输入图像描述

只想显示加载器和对话框文本。

4

1 回答 1

0

如果您想将 SimpleDialog 的背景颜色更改为透明,请添加具有高度的背景颜色,如下所示,

new SimpleDialog(
  backgroundColor: Colors.transparent,
  elevation: 0.1,
  title: new Text('Do you like Flutter?'),
  children: <Widget>[
    Center(
      child: Column(
        children: <Widget>[
          CircularProgressIndicator(),
          SizedBox(height: 10),
          Text('Please wait...', style: TextStyle(color: Colors.black))
        ],
      ),
    )
  ],
);
于 2020-04-25T08:05:23.847 回答