我可以使用https://material.io/tools/color生成有吸引力的调色板。结果是一组八种颜色。
不幸的是,ThemeData
使得仅凭这八个值很难构建主题。 a constructor承诺会为丢失的参数派生出合理的默认值,但是它并不能从原色和副色中得出所有信息。
我在这里错过了什么吗?是否有任何Flutter工具将材质调色板转换为材质主题?
答案 0 :(得分:0)
是的,在波动情况下,您可以将 MaterialColor 用于不同的颜色,例如Colors.blue [300]。
尽管ThemeData按照其constructor接受 Color 对象,但是您可以将 MaterialColor 与其他颜色阴影一起使用,例如 Colors.blue [300] < / strong>,因为它是从颜色继承的:
(颜色-> ColorSwatch-> MaterialColor)
建议:
您不应该在ThemeData或需要 Color 的任何地方直接使用它,因为有时在构建编译器时会出现红色错误屏幕的问题(我个人面对过此问题)。
例如:
final AppTheme = ThemeData(
primarySwatch: Colors.blue[300], //<- Not recommended
);
此问题的正确解决方案是:
final AppTheme = ThemeData(
primarySwatch: Colors.blue.shade300, //<- recommended
);