Android 如何使透明容器从背景中脱颖而出?

Android 如何使透明容器从背景中脱颖而出?,android,flutter,dart,Android,Flutter,Dart,我试图使我的容器透明,但仍然希望它们能很容易地从背景色中脱颖而出,就像下图所示。(这是PSD图像) 我尝试将容器包装在材质小部件中,如下所示: class customBar extends StatelessWidget { const customBar({ Key key, }) : super(key: key); @override Widget build(BuildContext context) { return Material(

我试图使我的容器透明,但仍然希望它们能很容易地从背景色中脱颖而出,就像下图所示。(这是PSD图像)

我尝试将
容器
包装在
材质
小部件中,如下所示:

class customBar extends StatelessWidget {
  const customBar({
    Key key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Material(
      color: Colors.transparent,
      elevation: 2,
      borderRadius: BorderRadius.circular(10),
      child: Container(
        width: double.infinity,
        height: 65,
        decoration: BoxDecoration(
          borderRadius: BorderRadius.circular(10),
          //color: Color(0xff0a4873),
        ),
        child: Text(
          '',
          textAlign: TextAlign.left,
        ),
      ),
    );
  }
}
但是它给了它太多的提升

也尝试过使用纯色,但也不能满足我的要求

Expanded(
  flex: 4,
  child: Padding(
    padding: const EdgeInsets.all(10.0),
    child: Column(
      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
      children: [
        customBar(),
        Container(
          width: double.infinity,
          height: 60,
          decoration: BoxDecoration(
            borderRadius: BorderRadius.circular(10),
            color: Color(0xff0a4873),
          ),
          child: Text(
            '',
            textAlign: TextAlign.left,
          ),
        ),
      ],
    ),
  ),
),
以下是输出:


不需要材料
。如果要调整颜色透明度,请使用
Colors.YOUR\u color.withOpacity(0.0..to..1.0)
color.fromRGBO(红色、蓝色、绿色,0.0..to..1.0)

示例:

Colors.blue.withOpacity(0.3);
// OR
Color.fromRGBO(50, 45, 220, 0.3);
编辑
您可以这样简化布局。

主页

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: CustomContainer(
        child: Column(
          children: [
            // other widgets and your containers here
          ],
        ),
      ),
    );
  }
}

不需要材料
。如果要调整颜色透明度,请使用
Colors.YOUR\u color.withOpacity(0.0..to..1.0)
color.fromRGBO(红色、蓝色、绿色,0.0..to..1.0)

示例:

Colors.blue.withOpacity(0.3);
// OR
Color.fromRGBO(50, 45, 220, 0.3);
编辑
您可以这样简化布局。

主页

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: CustomContainer(
        child: Column(
          children: [
            // other widgets and your containers here
          ],
        ),
      ),
    );
  }
}

谢谢你的回答,但是有没有一种方法可以在不添加额外颜色的情况下使它有点不透明?我使用渐变作为我的背景,希望它也能显示在容器栏中,给容器添加颜色会扼杀这一点。大幅降低颜色的不透明度以满足您的需要。例如,您可以使用
Colors.black.withOpacity(0.1)
我的小部件树是这样的
容器
容器(1)
。父容器具有由
Scaffold
继承的渐变,然后所讨论的
容器根本没有任何背景色,它从Scaffold继承背景色,而Scaffold从父容器继承背景色,所以问题是,如果这个容器中没有添加颜色,我如何增加或减少不透明度?为什么
容器>>脚手架>>容器
?您可以直接使用
Container>>Container
使用
Scaffold
AppBar
,这是pastebin中的完整代码谢谢您的回答,但是有没有一种方法可以在不添加其他颜色的情况下使其有点不透明?我使用渐变作为我的背景,希望它也能显示在容器栏中,给容器添加颜色会扼杀这一点。大幅降低颜色的不透明度以满足您的需要。例如,您可以使用
Colors.black.withOpacity(0.1)
我的小部件树是这样的
容器
容器(1)
。父容器具有由
Scaffold
继承的渐变,然后所讨论的
容器根本没有任何背景色,它从Scaffold继承背景色,而Scaffold从父容器继承背景色,所以问题是,如果这个容器中没有添加颜色,我如何增加或减少不透明度?为什么
容器>>脚手架>>容器
?您可以直接使用
Container>>Container
使用
Scaffold
AppBar
,以下是pastebin中的完整代码