微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在flutter中将十六进制颜色代码解析为各自的整数值

如何解决如何在flutter中将十六进制颜色代码解析为各自的整数值

我正在设计一个容器并从存储为字符串的 firebase 数据库提取颜色代码。现在我想将该字符串(十六进制代码)转换为整数(某些十六进制代码仅包含整数),因为 Color(0XFFf3234f) 仅将参数作为整数。 decoration: Boxdecoration(color:Color(ItemList[index].ColorCode)),,然后抛出一个错误参数类型'String'不能分配给参数类型“int”。 然后我用过:

class HexColor extends Color {

  static int _getColorFromHex(String hexColor) {

    hexColor = hexColor.toupperCase().replaceAll("#","");
    if (hexColor.length == 6) {

    }
    return int.parse(hexColor,radix: 16);
  }

  HexColor(final String hexColor) : super(_getColorFromHex(hexColor));
}

这对于具有字符串和数字的颜色代码工作正常,但对于只有数字的颜色代码会失败,抛出以下错误'toupperCase' 方法在 null 上被调用。 接收器:空 尝试调用toupperCase()

然后我尝试单独分离数值,但它根本不起作用。

以下是我使用的几个颜色代码: a74556,827255,a3d57a,662482

解决方法

只需简单地将 ColorCode 转换为 int:

Color(int.parse('0xff${ItemList[index].ColorCode}'))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。