如何修改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
相关产品推荐
相关产品推荐

