我想在容器周围绘制边框,并为背景着色。
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?
color从容器中删除参数,并将其添加到BoxDecoration中:
color
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),
您收到的错误只是一个有用的提醒。否则,您将得到一个奇怪的覆盖,或者甚至可能没有注意到该错误。