主题 theme: ThemeData(primarySwatch: Color.fromRGBO(7, 193, 96, 0.9)),设置定义颜色报错

theme: ThemeData(primarySwatch: Color.fromRGBO(7, 193, 96, 0.9))报The argument type 'Color' can't be assigned to the parameter type 'MaterialColor?'. - 'Color'

primarySwatch 是一个 MaterialColor 类型的参数,而不是 Color 类型。因此,如果您想将单个颜色转换为 Material 颜色系列,需要使用 MaterialColor 的构造函数来创建:

final customColor = Color.fromRGBO(7, 193, 96, 0.9);

final primarySwatch = MaterialColor(
  customColor.value,
  {
    50: customColor.withOpacity(0.1),
    100: customColor.withOpacity(0.2),
    200: customColor.withOpacity(0.3),
    300: customColor.withOpacity(0.4),
    400: customColor.withOpacity(0.5),
    500: customColor.withOpacity(0.6),
    600: customColor.withOpacity(0.7),
    700: customColor.withOpacity(0.8),
    800: customColor.withOpacity(0.9),
    900: customColor.withOpacity(1.0),
  },
);

return MaterialApp(
  title: 'My App',
  theme: ThemeData(
    primarySwatch: primarySwatch,
  ),
  home: MyHomePage(),
);

在上面的示例中,我们首先使用 Color.fromRGBO() 构造函数创建了一个自定义的颜色,然后使用 MaterialColor 的构造函数来创建一个包含各种透明度级别的颜色系列,最后将其作为 primarySwatch 参数传递给 ThemeData

 

posted @ 2023-04-26 10:06  小小强学习网  阅读(82)  评论(0)    收藏  举报