【问题标题】:How do I use ThemeData backgroundColor to get Colors.blue[100]?如何使用 ThemeData backgroundColor 获取 Colors.blue[100]?
【发布时间】:2019-09-20 08:54:05
【问题描述】:

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

我认为我已经阅读了有关此主题的所有内容,但它似乎无法解决我的问题。我不想使用十六进制颜色。

在“main”中,我定义了背景颜色如下:

 theme: ThemeData(
          backgroundColor: Colors.blue,
        ),

在我想使用它的程序中,我定义了 MaterialColor 并分配了一个值,如下所示:

MaterialColor _bgColor;
...
_bgColor = Theme.of(widget.context).backgroundColor;

这按预期工作。

但是,我想用作颜色的是 Colors.blue[100]。 如果我指定如下:

 theme: ThemeData(
          backgroundColor: Colors.blue[100],
        ),

然后我得到运行时错误 - 类型“颜色”不是类型“材料颜色”的子类型。

【问题讨论】:

    标签: flutter


    【解决方案1】:

    您可能需要导入 MaterialColor

    import 'package:flutter/material.dart';
    

    【讨论】:

    • 不,我已经有了它,只需要它来编译。 Colors.blue[100] 不能在 ThemeData 中使用,但必须有办法得到它(我想),这就是我需要知道的。
    【解决方案2】:

    我遇到了同样的问题,我找到了github issue 来了解如何解决它。

    总结 看起来这正在按预期工作:

    primarySwatch 采用 ColorSwatch 其中 MaterialColor extends. 色板是颜色的阴影图 (from [50] to [900])。

    Colors.teal 是一个样本,它包含了所有不同颜色的蓝绿色,其中teal[100] 只是其中之一。

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

    【讨论】:

    • 好的,所以我将主题颜色指定为 Colors.blue,就像我在上面的第一个示例中所做的那样。那么我如何从我想要做的事情中获得蓝色[100]?
    • 背景颜色:Colors.blue[100],材质颜色
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 2020-11-24
    • 2013-05-22
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多