dart常量创建的参数必须是常量表达式

时间:2018-10-26 00:52:52

标签: dart flutter

在开发带有Flutter的应用程序时,我想定义一些常见的样式。

代码如下:

import 'package:flutter/material.dart';
class AppStyle {
  static Color colorRed = const Color(0xffe04f5f);
  static Color colorWhite = const Color(0xffffffff);
  static Color colorGreen = const Color(0xff1abc9c);
}

现在,我想定义一个新样式。

static TextStyle listRowTitle = const TextStyle(fontSize: 20.0, color: colorGreen);

如果您编写上述内容,那么colorGreen在这里将有问题。错误信息是

[dart] Invalid constant value.
[dart] Arguments of a constant creation must be constant expressions.
Color colorGreen

如果将colorGreen更改为Color(0xff1abc9c),就没有问题!

static TextStyle listRowTitle = const TextStyle(fontSize: 20.0, color: Color(0xff1abc9c));

请我教我!

2 个答案:

答案 0 :(得分:1)

由于颜色是在类中定义的,因此您必须执行以下操作:

AppStyle.colorGreen

日期:

哦,我知道您正在使用cont TextStyle。因此,您可以删除const或为const添加AppStyle

我只是从const中删除了TextStyle

TextStyle(fontSize: 20.0, color: AppStyle.colorGreen)

Understand how const works.

答案 1 :(得分:0)

问题是您要向常量窗口小部件的属性(颜色)声明变量值(colorGreen)。恒定的小部件不能改变,更改。

只需从小部件中删除修饰符 const

static TextStyle listRowTitle = const TextStyle(fontSize: 20.0, color: colorGreen);