我想在Flutter中使用Firebase中的十六进制代码

问题描述 投票:1回答:1

我是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。

希望你能帮助我!

firebase flutter hex background-color hashcode
1个回答
1
投票

您可以使用将0x截断并将其余部分解析为十六进制的函数。

Color convertToColor(String prefixedHex) => Color(int.parse(
      prefixedHex.substring(2),
      radix: 16,
    ));
© www.soinside.com 2019 - 2024. All rights reserved.