参数类型“颜色?” 无法分配给参数类型“MaterialColor?”

Meg*_*ara 35 android visual-studio dart flutter

在此输入图像描述

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

The argument type 'MaterialColor' can't be assigned to the parameter type 'Paint'
Run Code Online (Sandbox Code Playgroud)

Mah*_*hdi 53

您也可以使用colorScheme属性并设置如下:

theme: ThemeData(
    colorScheme: ColorScheme.fromSwatch().copyWith(

      primary: const Colors.yellow[700],
      secondary: const Colors.yellow.shade700,

      // or from RGB

      primary: const Color(0xFF343A40),
      secondary: const Color(0xFFFFC107),

    ),
  ),
Run Code Online (Sandbox Code Playgroud)


Yas*_*ant 17

如果你想要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);
Run Code Online (Sandbox Code Playgroud)

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


Apb*_*Apb 6

primarySwatch只需要一个ColorSwatch而不是 colorShade

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

    ThemeData(
        primaryColor: Colors.yellow[700]
    )
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息primaryColor