我是Firebase的新手,我终于从Firebase获得了数据,扑朔迷离。我使用颜色,每张卡都有颜色和数字。
我在Firebase中:字段colorCode,它是一个字符串,其值为'0xFFFFB142'
在Flutter中,我试图这样做:
final int colorCode = list[index]['colorCode'].hashCode;
Container(
height: 25.0,
width: 25.0,
color: Color(colorCode),
),
我没有失败,但是我看不到颜色。
它必须是一个int,但它是字符串代码中的十六进制。当我在Firebase中尝试int时,因为是十六进制,所以我失败了。
更新:谢谢大家到目前为止的帮助!我已经在Firebase中自己输入了代码。与通常放置在该位置的颜色相同,例如颜色:Color(0xFFFFB142),其中FFB142是颜色#FFB142在Firebase中,我使用了字符串,因为不允许使用int或纯代码。使用我的代码,当我打印它时:它得到171924876,那不是正确的颜色代码。
我已经尝试过:
final dynamic colorCode =
list[index]['colorCode'].toString();
print(colorCode); // the right color code is printend: 0xFFFFB142
当我把它放进去:
Container(
height: 25.0,
width: 25.0,
color: Color(0xFFFFB142),
效果很好,但是我在Firebase中为每个项目都设置了另一个colorCode。
希望你能帮助我!
您可以使用将0x
截断并将其余部分解析为十六进制的函数。
Color convertToColor(String prefixedHex) => Color(int.parse(
prefixedHex.substring(2),
radix: 16,
));