我想在容器周围画一个边框,并给背景上色。
Widget bodyWidget() {
return Container(
color: Colors.yellow,
decoration: BoxDecoration(
border: Border.all(color: Colors.black),
),
child: Text("Flutter"),
);
}
但是当我尝试这个时,我得到了错误
不能同时提供颜色和装饰物
color参数只是“ decoration:new BoxDecoration(color: 颜色)”。
如何解决?
答案 0 :(得分:4)
从容器中删除color
参数并将其添加到BoxDecoration:
Widget bodyWidget() {
return Container(
decoration: BoxDecoration(
color: Colors.yellow,
border: Border.all(color: Colors.black),
),
child: Text("Flutter"),
);
}
如果选中Container source code,则可以看到color
参数仅用于设置装饰为空的BoxDecoration颜色。
decoration = decoration ?? (color != null ? BoxDecoration(color: color) : null),
您得到的错误只是一个有用的提醒。否则,您会得到一个奇怪的覆盖(as was apparently the case in the past),或者甚至可能不会注意到该错误。
答案 1 :(得分:3)
color
属性是用于创建带有颜色字段的BoxDecoration
的简写。如果要添加盒子装饰,只需将颜色放在BoxDecoration上即可。
assert(color == null || decoration == null,
'Cannot provide both a color and a decoration\n'
'To provide both, use "decoration: BoxDecoration(color: color)".'
),
因此,如果您在BoxDecoration
中使用过Container
,则必须从Container
中删除color参数,并在BoxDecoration
中添加到其中>
Container(
decoration: BoxDecoration(
color: Colors.yellow,
),
// color: Colors.yellow,
)