I found this question but doesn't work for me.
我还使用Opacity
小部件和装饰{em {em}} 的颜色。但是没有找到解决方案。当我将其设置为透明时,它始终显示白色背景色。
看下面的图像,它应该是透明的而不是红色。
下面是我的代码:
Container
答案 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为完全不透明。