Flutter - 颜色名称字符串到 Material 颜色

在 Flutter 中有一种方法可以根据其名称生成 Material 颜色,而无需创建完整的 map Map<String,MaterialColor> .

理论上是这样的:

String colorName = "deepOrange";
MaterialColor color = Colors(colorName);

最佳答案

根据评论,目的是从shared_preferences中保存和读回。在这种情况下,最好通过 int 值而不是字符串名称来保存和检索颜色,以确保我们始终能够获取颜色。

  • 保存:prefs.setInt("prefered_color", Color.value)
  • 检索:Color c = const Color(prefs.getInt('prefered_color') ?? 0xFF42A5F5);

据官方doc ,目前没有 API 可以执行您描述的功能。尽管实现您的方法很容易,但我怀疑它在一般情况下的用处。我们还必须处理拼写错误或 noSuchColor 错误。但是使用 const/enum 将提供编译时错误检查的优势。

https://stackoverflow.com/questions/55028417/

相关文章: