颤振如何将容器背景设置为透明颜色

时间:2019-01-10 06:35:22

标签: dart flutter alertdialog

I found this question but doesn't work for me.

我还使用Opacity小部件和装饰{em {em}} 的颜色。但是没有找到解决方案。当我将其设置为透明时,它始终显示白色背景色。

看下面的图像,它应该是透明的而不是红色。

enter image description here

下面是我的代码:

Container

3 个答案:

答案 0 :(得分:3)

AlertDialog小部件具有backgroundColor属性,只需将其设置为透明。

  AlertDialog(
              contentPadding: EdgeInsets.zero,
              backgroundColor: Colors.transparent,

并删除BoxDecoration

更新 似乎backgroundColor在Flutter 1.0.0上尚不可用。 (我在开发频道上)

稳定:https://github.com/flutter/flutter/blob/stable/packages/flutter/lib/src/material/dialog.dart

dev:https://github.com/flutter/flutter/blob/dev/packages/flutter/lib/src/material/dialog.dart

检查Dialog的源代码,发现它使用的是主题dialogBackgroundColor。试试这个简单的方法:

  showDialog(
          context: context,
          builder: (BuildContext context) {
            return Theme(
              data: Theme.of(context).copyWith(dialogBackgroundColor: Colors.transparent),
              child: AlertDialog(
                contentPadding: EdgeInsets.zero,
                content: Stack(
                  children: <Widget>[
                    Container(
                      margin: EdgeInsets.all(8.0),
                      color: Colors.white,
                      ...

答案 1 :(得分:1)

您还可以执行以下操作

backgroundColor: Color.fromRGBO(r, g, b, o)

答案 2 :(得分:1)

您可以使用以下方法轻松实现此目标:

...
   color: Colors.red.withOpacity(0),
                            ...

您可以通过使用从0到1的十进制值来指定所需的不透明度,0为完全透明,而1为完全不透明。