首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dart,颤振: const修饰符的意思,Colors.yellow [200]不是一个常数吗?

Dart,颤振: const修饰符的意思,Colors.yellow [200]不是一个常数吗?
EN

Stack Overflow用户
提问于 2021-07-14 03:21:12
回答 2查看 417关注 0票数 2
代码语言:javascript
复制
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修饰符,

所以我觉得最好把它加进去,

当我加进去的时候。

代码语言:javascript
复制
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不是一个常量吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-14 03:31:56

MaterialColor yellow是常量,但不是它的底层颜色图。

如果您查看一下MaterialColor yellow的实现,

你会发现它的彩色地图<int, Color>{...}是不合格的。

代码语言:javascript
复制
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),
});
票数 2
EN

Stack Overflow用户

发布于 2021-07-14 03:32:27

通过文档,如果使用Colors.yellow,它将返回一个const MaterialColor。但是,当您使用Colors.yellow[200]Colors.yellow.shade200时,它返回的是Color,而不是const

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68371616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档