String 颤振将颜色(字符串)转换为颜色
我有一组来自DB的数据,比如String 颤振将颜色(字符串)转换为颜色,string,flutter,colors,widget,String,Flutter,Colors,Widget,我有一组来自DB的数据,比如 { ... name:"any name" , something:{ color:"red" } } Map<String, dynamic> map = { "name": "any name", "something": {"color": "red&quo
{
...
name:"any name"
, something:{
color:"red"
}
}
Map<String, dynamic> map = {
"name": "any name",
"something": {"color": "red"}
};
Color getColor(String color) {
switch (color) {
//add more color as your wish
case "red":
return Colors.red;
case "blue":
return Colors.blue;
case "yellow":
return Colors.yellow;
case "orange":
return Colors.orange;
case "green":
return Colors.green;
default:
return Colors.transparent;
}
}
基于此(不能更改数据库),如何在具有背景色的小部件中动态显示名称,例如“红色”
(将颜色字符串红色转换为颜色类型)据我所知,这是不可能的 但你可以这样做:
Map nameToColor={
“红色”:颜色。红色,
“蓝色”:颜色。蓝色,
}
然后
{
...
姓名:“任何姓名”
例如:{
颜色:nameToColor['red']??color.green//或任何其他默认颜色
}
}
据我所知,这是不可能的
但你可以这样做:
Map nameToColor={
“红色”:颜色。红色,
“蓝色”:颜色。蓝色,
}
然后
{
...
姓名:“任何姓名”
例如:{
颜色:nameToColor['red']??color.green//或任何其他默认颜色
}
}
您可以输入变量
然后使用它
例如:
const Color Red=Colors.red;
{
...
name:"any name"
, something:{
color:Red
}
}
您可以输入
变量
,然后使用它
例如:
const Color Red=Colors.red;
{
...
name:"any name"
, something:{
color:Red
}
}
其实没有这个办法。但是如果颜色的价值是已知的,那么我们可以这样做
{
...
name:"any name"
, something:{
color:"red"
}
}
Map<String, dynamic> map = {
"name": "any name",
"something": {"color": "red"}
};
Color getColor(String color) {
switch (color) {
//add more color as your wish
case "red":
return Colors.red;
case "blue":
return Colors.blue;
case "yellow":
return Colors.yellow;
case "orange":
return Colors.orange;
case "green":
return Colors.green;
default:
return Colors.transparent;
}
}
其实没有这个办法。但是如果颜色的价值是已知的,那么我们可以这样做
{
...
name:"any name"
, something:{
color:"red"
}
}
Map<String, dynamic> map = {
"name": "any name",
"something": {"color": "red"}
};
Color getColor(String color) {
switch (color) {
//add more color as your wish
case "red":
return Colors.red;
case "blue":
return Colors.blue;
case "yellow":
return Colors.yellow;
case "orange":
return Colors.orange;
case "green":
return Colors.green;
default:
return Colors.transparent;
}
}
多亏了@Tipu Sultan和@Er1 我尝试了另一种解决方案,效果很好
Map<String, dynamic> objFormDB= {
"name": "any name",
"something": {"color": "red"}
};
Map<String, Color> nameToColor = {
'red' : Colors.red,
'blue' : Colors.blue,
}
这很简单:)多亏了@Tipu Sultan和@Er1 我尝试了另一种解决方案,效果很好
Map<String, dynamic> objFormDB= {
"name": "any name",
"something": {"color": "red"}
};
Map<String, Color> nameToColor = {
'red' : Colors.red,
'blue' : Colors.blue,
}
这很简单:)我无法更改来自DB的对象,你是说像。。。Text(obj.name,style:TextStyle(color:nameToColor[obj.something.color])???谢谢这一款很管用。。。Text(obj.name,style:TextStyle(color:nameToColor[obj.something.color])@Salsabeel你是对的,我没有注意到你的示例显示了来自数据库的数据。但你似乎已经明白了。快乐编码!我无法更改来自DB的对象,你是说像。。。Text(obj.name,style:TextStyle(color:nameToColor[obj.something.color])???谢谢这一款很管用。。。Text(obj.name,style:TextStyle(color:nameToColor[obj.something.color])@Salsabeel你是对的,我没有注意到你的示例显示了来自数据库的数据。但你似乎已经明白了。快乐编码!