Flutter容器:无法同时提供颜色和装饰。

36

我想在容器周围画一个边框,并使背景着色。

Widget bodyWidget() {
  return Container(
    color: Colors.yellow,
    decoration: BoxDecoration(
      border: Border.all(color: Colors.black),
    ),
    child: Text("Flutter"),
  );
}

但是当我尝试这样做时,我会遇到以下错误:

不能同时提供颜色和装饰。
颜色参数只是 "decoration: new BoxDecoration(color: color)" 的一种简写形式。

该如何解决?

1个回答

69

从容器中删除color参数,并将其添加到BoxDecoration中:

Widget bodyWidget() {
  return Container(
    decoration: BoxDecoration(
      color: Colors.yellow,
      border: Border.all(color: Colors.black),
    ),
    child: Text("Flutter"),
  );
}

enter image description here

如果你查看容器源代码,你会发现color参数只是用于设置BoxDecoration颜色,如果装饰为空。

decoration = decoration ?? (color != null ? BoxDecoration(color: color) : null),

你收到的错误只是一个有用的提醒。否则,你会得到一个奇怪的覆盖(似乎在过去的情况下),或者你甚至可能都没有注意到这个错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接