如何将材质调色板转换为 Flutter 主题?

Dun*_*nes 7 themes colors material-design flutter

我可以使用https://material.io/tools/color生成有吸引力的调色板。结果是一组八种颜色。

不幸的是,ThemeData仅凭这八个价值观很难构建一个主题。有一个构造函数承诺为缺失的参数派生出合理的默认值,但它并不能从原色和次要颜色中派生出所有内容。

我在这里错过了什么吗?有没有 Flutter 工具可以将材质调色板转换为材质主题?

Nit*_*esh 0

是的,在 flutter 中,您可以使用MaterialColor来表示不同的色调,例如 Colors.blue[300]。

虽然 ThemeData根据其构造函数接受Color对象,但您可以使用具有不同色调的MaterialColor ,例如Colors.blue[300],因为它继承自 Color:

颜色-> ColorSwatch -> MaterialColor)

建议:
您不应直接在 ThemeData 或任何需要颜色的地方使用它,因为有时在构建编译器时会出现红色错误屏幕故障(我个人遇到过这个问题)。

例如:

final AppTheme = ThemeData(
    primarySwatch: Colors.blue[300],  //<- Not recommended
    );
Run Code Online (Sandbox Code Playgroud)

此问题的正确解决方案是:

final AppTheme = ThemeData(
        primarySwatch: Colors.blue.shade300,  //<- recommended
        );
Run Code Online (Sandbox Code Playgroud)