如何使用ThemeData backgroundColor获取Colors.blue [100]?
我认为我已经阅读了有关该主题的所有内容,但似乎并不能解决我的问题。我不想使用十六进制颜色。
在“主”中,我将背景颜色定义如下:
theme: ThemeData(
backgroundColor: Colors.blue,
),
在我要使用它的程序中,我定义了MaterialColor并分配了一个值,如下所示:
MaterialColor _bgColor;
...
_bgColor = Theme.of(widget.context).backgroundColor;
这按预期工作。
但是,我要使用的颜色是Colors.blue [100]。 如果我指定如下:
theme: ThemeData(
backgroundColor: Colors.blue[100],
),
然后我得到运行时错误-类型'Color'不是类型'MaterialColor'的子类型。
答案 0 :(得分:0)
您可能需要导入MaterialColor
import 'package:flutter/material.dart';
答案 1 :(得分:0)
我遇到了同样的问题,并且发现了github issue的解决方法。
摘要 看起来像预期的那样工作:
primarySwatch
取ColorSwatch
,其中MaterialColor extends.
色板是颜色(from [50] to [900]
)的阴影映射。
Colors.tea
l是一个色板,它包含蓝绿色的所有不同颜色变体,其中teal[100]
仅是一个。
Colors.teal[100]
是一种单独的颜色,不能将其分配给需要完整色样的属性。