String 颤振/省道:将字符串转换为颜色?

String 颤振/省道:将字符串转换为颜色?,string,flutter,dart,colors,String,Flutter,Dart,Colors,我的数据库将颜色保存为字符串,如“black”,因此我基本上在寻找这样的函数:Color.FromName(“black”) 在这种情况下如何转换为颜色?实际上,我编写了一段代码,将字符串映射为颜色 Map<String,Color> Map 我用十六进制颜色运行它。 { 类别=类别列表[索引]; String hexString=category.color;//字符串值,例如数据库中的“EF9A9A” int myColor=int.parse(“0xff$hexStr

我的数据库将颜色保存为字符串,如
“black”
,因此我基本上在寻找这样的函数:
Color.FromName(“black”)

在这种情况下如何转换为颜色?

实际上,我编写了一段代码,将字符串映射为颜色

Map<String,Color>
Map
我用十六进制颜色运行它。
{    
类别=类别列表[索引];
String hexString=category.color;//字符串值,例如数据库中的“EF9A9A”
int myColor=int.parse(“0xff$hexString”);
回程卡(
...
颜色:颜色(myColor),
}
类别{
字符串id;
字符串标题;
字符串颜色;
类别({
这个身份证,
这个名字,
这个颜色,
});
工厂类别.fromJson(映射json)=>类别(
id:json[“id”],
标题:json[“标题”],
颜色:json[“颜色”],
);
}

我没有这方面的经验,但它似乎可以满足您的需要。否则,编写脚本扫描颤振并生成将
String
s映射到
Color
s的代码应该不会太难。扩展@jamesdlin的注释,package:Color具有符合您要求的rgb方法。
rgbColor black=new RgbColor.name('black');
确保您的数据库具有正确的CSS颜色名称。也许您可以在Color类上创建一个扩展,并将所有颜色从数据库放到扩展中?@jamesdlin是的,我将编写一个脚本来生成将字符串映射到颜色的代码。@thusith.92我尝试过这样做:
RgbColor black=new RgbColor.name('black');
但它不起作用,因为程序包是Painting.dart和Color.dart
I ran it for hexadecimal colors.  

{    
    Category category = categoryList[index];
    String hexString = category.color; // string value e.g: 'EF9A9A' from database 
     int myColor = int.parse("0xff$hexString");
     return Card(
     ...
     color: Color(myColor),
}

class Category {
    String id;
    String title;
    String color;

    Category({
        this.id,
        this.title,
        this.color,
    });

  
    factory Category.fromJson(Map<String, dynamic> json) => Category(
        id: json["id"] ,
        title: json["title"],
        color: json["color"],
    );
}