在 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/
相关文章: