如何使用ThemeData backgroundColor获取Colors.blue [100]?

时间:2019-09-20 08:54:05

标签: flutter

如何使用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'的子类型。

2 个答案:

答案 0 :(得分:0)

您可能需要导入MaterialColor

import 'package:flutter/material.dart';

答案 1 :(得分:0)

我遇到了同样的问题,并且发现了github issue的解决方法。

摘要 看起来像预期的那样工作:

primarySwatchColorSwatch,其中MaterialColor extends.色板是颜色(from [50] to [900])的阴影映射。

Colors.tea l是一个色板,它包含蓝绿色的所有不同颜色变体,其中teal[100]仅是一个。

Colors.teal[100]是一种单独的颜色,不能将其分配给需要完整色样的属性。