You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Flutter中Icons.verified图标的内部对勾颜色?

解决Flutter中Icons.verified内部对勾颜色修改问题

原生Icon组件无法单独修改Icons.verified内部对勾的颜色,因为该图标是单一矢量路径,color属性会控制整个图标的颜色。以下是几种可行的解决方案:

方案一:拆分基础图标组合(推荐)

直接用Stack叠加Icons.circle(背景)和Icons.check(对勾),分别控制两者的颜色,效果和原生verified图标一致且完全可控:

Stack(
  alignment: Alignment.center,
  children: [
    Icon(
      Icons.circle,
      color: Colors.blue, // 背景色
      size: 24,
    ),
    Icon(
      Icons.check,
      color: Colors.white, // 对勾颜色
      size: 16,
    ),
  ],
)

你之前用Stack效果不佳,大概率是没设置alignment或尺寸比例,上述代码已调整对齐和尺寸,可直接复用。

方案二:使用自定义SVG图标

若需要完全匹配原生Icons.verified的形状,可下载该图标的SVG文件,通过flutter_svg包导入后,直接编辑SVG内部路径的颜色属性,实现背景和对勾的颜色分离控制。

方案三:ShaderMask实现颜色拆分

通过ShaderMask裁剪区域实现颜色拆分,适合必须使用原生Icons.verified图标的场景:

ShaderMask(
  shaderCallback: (Rect bounds) {
    return LinearGradient(
      colors: [Colors.white, Colors.white],
      stops: [0.0, 1.0],
    ).createShader(bounds);
  },
  blendMode: BlendMode.srcIn,
  child: ShaderMask(
    shaderCallback: (Rect bounds) {
      return LinearGradient(
        colors: [Colors.blue, Colors.blue],
        stops: [0.0, 1.0],
      ).createShader(bounds);
    },
    blendMode: BlendMode.srcATop,
    child: Icon(Icons.verified, size: 24),
  ),
)

注意:此方法需要根据图标尺寸微调渐变参数,不如方案一直观。

内容的提问来源于stack exchange,提问作者Kristi Jorgji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 20:55:04