一尘不染

Flutter Container:不能同时提供颜色和装饰

flutter

我想在容器周围绘制边框,并为背景着色。

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

但是当我尝试这个时我得到了错误

Cannot provide both a color and a decoration
The color argument is just a shorthand for “decoration: new
BoxDecoration(color: color)”.

How is this solved?


阅读 418

收藏
2020-08-13

共1个答案

一尘不染

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

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

如果检查Container的源代码,则可以看到 如果装饰为null ,则该color参数仅用于设置BoxDecoration颜色。

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

您收到的错误只是一个有用的提醒。否则,您将得到一个奇怪的覆盖,或者甚至可能没有注意到该错误。

2020-08-13