【问题标题】:The argument type 'Color?' can't be assigned to the parameter type 'MaterialColor?参数类型“颜色?”不能分配给参数类型 'MaterialColor?
【发布时间】:2021-08-27 23:48:57
【问题描述】:
我想在颤动中设置背景 Colors.yellow[700],但是当我添加符号“[]”或 Colors.yellow.shade600 时,我无法设置背景值。它显示错误&错误是
The argument type 'MaterialColor' can't be assigned to the parameter type 'Paint'
【问题讨论】:
标签:
android
visual-studio
flutter
dart
【解决方案1】:
如果你想要primarySwatch 和Colors.yellow[700] 作为primaryColor,你必须像这样从颜色Colors.yellow[700] 创建自己的MaterialColor
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],。
【解决方案2】:
您也可以使用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),
),
),
【解决方案3】:
primarySwatch 只需要 ColorSwatch 而不是 colorShade
如果你想使用阴影,你可以尝试
ThemeData(
primaryColor: Colors.yellow[700]
)
更多信息primaryColor