Flutter中使用十六进制颜色字符串

本文介绍了在Flutter中如何将十六进制颜色字符串转换为Color对象,通过扩展方法实现直接使用十六进制颜色创建Color实例,适用于Dart 2.6.0及以上版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#b74093为例
在Flutter中,Color类只接受整数作为参数,或者可以使用指定的构造函数fromARGBfromRGBO
我们的目标是将字符串#b74093转换为整数值,同时需要指定不透明度(一般不透明度为100%,用十六进制表示即为0xFF)。接下来只需要将颜色值添加上去就行了,如下

const color = const Color(0xffb74093); // Second `const` is optional in assignments.

从Dart 2.6.0开始,您可以为Color类创建一个扩展,该扩展允许您使用十六进制颜色字符串来创建一个Color对象。

extension HexColor on Color {
  /// String is in the format "aabbcc" or "ffaabbcc" with an optional leading "#".
  static Color fromHex(String hexString) {
    final buffer = StringBuffer();
    if (hexString.length == 6 || hexString.length == 7) buffer.write('ff');
    buffer.write(hexString.replaceFirst('#', ''));
    return Color(int.parse(buffer.toString(), radix: 16));
  }

  /// Prefixes a hash sign if [leadingHashSign] is set to `true` (default is `tru
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辕门骁骑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值