【发布时间】:2020-02-23 19:59:20
【问题描述】:
我是 Firebase 的新手,我终于从 Firebase 获得了数据。 我使用颜色,每张卡片都有一个颜色和颜色编号。
我在 Firebase 中有: 一个字段colorCode,它是一个String,值为'0xFFFFB142'
在 Flutter 中我尝试这样做:
final int colorCode = list[index]['colorCode'].hashCode;
Container(
height: 25.0,
width: 25.0,
color: Color(colorCode),
),
我没有失败,但我看不到颜色。
它必须是 int,但它是字符串代码中的十六进制。 当我在 Firebase 中尝试一个 int 时,我失败了,因为它是十六进制的。
更新: 到目前为止,感谢大家的帮助! 我自己在 Firebase 中输入了代码。它和你通常放在那个地方的一样,比如 color: 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 中为每个项目都有另一个颜色代码。
收到这条错误消息我觉得很奇怪,因为我不想要一个 int,而是一个像 0xFFFFB142 这样的颜色代码
type 'String' is not a subtype of type 'int'
希望你能帮助我!
【问题讨论】:
-
将
colorCode变量打印到控制台的结果是什么? -
(Color Class) 中提到的 Color 构造函数接受一个 int 值:Color(int value) 所以你不能使用字符串 代替。这不起作用 Color("your_color").
-
如果最终结果是你需要和 int,那么在存储到 firebase 之前,将 Hex 转换为和 Int 并将其存储为 int。
-
谢谢。我已经编辑了我的问题。 er 是 int 值很奇怪,因为我通常使用的代码不是 int 而是 hex。
-
十六进制只是表示整数的一种方式,十进制也是如此(这是您打印的)。但是数字
171924876不是很好的颜色。你从哪里得到它,你是怎么把它放到 Firebase 中的?
标签: firebase flutter hex background-color hashcode