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

如何修改Flutter Radio单选按钮选中状态下的内部圆点颜色为红色

你可以通过fillColor属性控制Radio选中状态下内部圆点的颜色,该属性专门负责单选按钮内部填充区域的颜色,你原来设置的activeColor是控制单选按钮外圈边框的颜色,调整后的代码如下:

Radio<String>(
  // 保留原来的外圈选中颜色为白色
  activeColor: WHITE,
  // 配置内部填充圆点颜色
  fillColor: MaterialStateProperty.resolveWith((states) {
    // 选中状态下内部圆点为红色,你可以替换成自定义的红色常量
    if (states.contains(MaterialState.selected)) return Colors.red;
    // 未选中状态的填充色可按需调整
    return Colors.transparent;
  }),
  value: "video",
  groupValue: _radioBtnVal,
  onChanged: _handleChange
),
Text(
  "Video Call",
  style: TextStyle(
    color: _radioBtnVal == 'video' ? WHITE : BLACK,
    fontWeight: FontWeight.bold
  ),
),

如果你使用的是不支持fillColor属性的低版本Flutter,可以用Theme包裹Radio组件实现效果:

Theme(
  data: ThemeData(
    radioTheme: RadioThemeData(
      fillColor: MaterialStateProperty.resolveWith((states) {
        if (states.contains(MaterialState.selected)) return Colors.red;
        return Colors.transparent;
      })
    )
  ),
  child: Radio<String>(
    activeColor: WHITE,
    value: "video",
    groupValue: _radioBtnVal,
    onChanged: _handleChange
  ),
)

内容的提问来源于stack exchange,提问作者Avdhesh Purohit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:54:03