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



在使用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));

请让我教我!

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

AppStyle.colorGreen

日期:

哦,我明白了,你在用cont TextStyle。因此,您可以删除const或为您的AppStyle添加const

我只是从TextStyle:中删除了const

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

了解const的工作原理。

问题是您正在为常量小部件的属性(color(声明一个变量值(colorGreen(。不变的小部件不能改变。

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

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

最新更新