Widget iconOfAnonymousUsers = CircleAvatar(
radius: 100.0,
//backgroundColor: Colors.indigo[200],
backgroundColor: Colors.yellow[200],
child: Stack(
children: [
//Center(child: Icon(Icons.person_outline)),
Text("anonymous",
style: TextStyle(
fontSize: 30.0,
color: Colors.black,
)),
],
),
);上面的iconOfAnonymousUsers可以有const修饰符,
所以我觉得最好把它加进去,
当我加进去的时候。
const Widget iconOfAnonymousUsers = CircleAvatar(
radius: 100.0,
//backgroundColor: Colors.indigo[200],
backgroundColor: Colors.yellow[200],
child: Stack(
children: [
//Center(child: Icon(Icons.person_outline)),
Text("anonymous",
style: TextStyle(
fontSize: 30.0,
color: Colors.black,
)),
],
),
);然后我得到了以下错误。

我不认为iconOfAnonymousUsers中有任何非const组件,但是有任何非const组件吗?
我不知道为什么会发生错误。

我已经在上面的代码中得到了一个错误,Colors.yellow 200不是一个常量吗?
发布于 2021-07-14 03:31:56
MaterialColor yellow是常量,但不是它的底层颜色图。
如果您查看一下MaterialColor yellow的实现,
你会发现它的彩色地图<int, Color>{...}是不合格的。
static const MaterialColor yellow = MaterialColor(
_yellowPrimaryValue,
<int, Color>{
50: Color(0xFFFFFDE7),
100: Color(0xFFFFF9C4),
200: Color(0xFFFFF59D),
300: Color(0xFFFFF176),
400: Color(0xFFFFEE58),
500: Color(_yellowPrimaryValue),
600: Color(0xFFFDD835),
700: Color(0xFFFBC02D),
800: Color(0xFFF9A825),
900: Color(0xFFF57F17),
});发布于 2021-07-14 03:32:27
通过文档,如果使用Colors.yellow,它将返回一个const MaterialColor。但是,当您使用Colors.yellow[200]或Colors.yellow.shade200时,它返回的是Color,而不是const
https://stackoverflow.com/questions/68371616
复制相似问题