参数类型“颜色?”不能分配给参数类型 'MaterialColor?

时间:2021-06-11 01:10:21

标签: android visual-studio flutter dart

enter image description here

我想在flutter中设置背景Colors.yellow[700],但是当我添加符号“[]”或Colors.yellow.shade600时,却无法设置背景值。它显示错误 & 错误是

The argument type 'MaterialColor' can't be assigned to the parameter type 'Paint'

2 个答案:

答案 0 :(得分:0)

primarySwatch 只需要一个 ColorSwatch 而不是 colorShade

如果你想使用阴影,你可以尝试

    ThemeData(
        primaryColor: Colors.yellow[700]
    )

了解更多信息primaryColor

答案 1 :(得分:0)

如果您想要 primarySwatchColors.yellow[700] 作为 primaryColor,您必须像这样从颜色 MaterialColor 创建自己的 Colors.yellow[700]

final Map<int, Color> _yellow700Map = {
  50: Color(0xFFFFD7C2),
  100: Colors.yellow[100],
  200: Colors.yellow[200],
  300: Colors.yellow[300],
  400: Colors.yellow[400],
  500: Colors.yellow[500],
  600: Colors.yellow[600],
  700: Colors.yellow[800],
  800: Colors.yellow[900],
  900: Colors.yellow[700],
};

final MaterialColor _yellow700Swatch =
  MaterialColor(Colors.yellow[700].value, _yellow700Map);

然后将其添加为 primarySwatch: _yellow700Swatch, 或者如果您只想将背景设为 Colors.yellow[700],您可以像这样使用 canvasColor canvasColor: Colors.yellow[700],