Flutter自定义StatelessWidget:如何用传入的Colors参数设置Icon颜色
解决方法
你的代码需要调整几个细节,同时完成颜色传递的需求,具体操作如下:
- 遵循Dart类名规范,把
colorSymbol改为首字母大写的ColorSymbol - 成员变量的类型应该是
Color而非Colors——Colors是Flutter提供的工具类,用于存放预定义颜色常量,实际颜色对象的类型是Color - 在
Icon的color参数位置,直接传入你定义的color成员变量即可 - 简化构造函数写法,贴合Dart语法规范
修正后的完整代码:
class ColorSymbol extends StatelessWidget { final Color color; const ColorSymbol({ required this.color, super.key, }); @override Widget build(BuildContext context) { return Icon( Icons.accessibility, color: color, // 直接使用传入的颜色变量 size: 64.0, ); } }
使用组件时,可通过以下方式传递颜色:
// 传入Flutter预定义颜色 ColorSymbol(color: Colors.blue), // 传入自定义十六进制颜色 ColorSymbol(color: Color(0xFF4CAF50)),
内容的提问来源于stack exchange,提问作者beingmathematician
相关产品推荐
相关产品推荐

