Flutter自定义AppBar中IconButton图标大小报错:无效常量值
问题原因及解决方法
你的错误出在**const关键字的使用**上:
你给Center和Icon组件加了const修饰,但iconSize是CircleBackButton的实例成员变量,属于运行时才能确定的值,不是编译时常量。在const修饰的Widget树中,所有参数必须是常量值,所以这里引用iconSize就会触发「无效常量值」错误。
修正后的代码
class CircleBackButton extends StatelessWidget { CircleBackButton({ Key? key, this.width, this.height, this.iconSize }) : super(key: key); double? width = 35; double? height = 35; final double? iconSize; @override Widget build(BuildContext context) { return Container( width: width, height: width, decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all(color: secondary.withOpacity(0.2))), child: Center( child: Icon( Icons.arrow_back_ios_new, size: iconSize, color: secondary, ), ), ); } }
补充说明:如果secondary不是全局常量而是动态值,同样不能在const修饰的组件中使用,不过从代码结构看它应该是全局常量,所以核心问题就是const关键字和实例变量iconSize的冲突,移除const即可解决。
内容的提问来源于stack exchange,提问作者Pax
相关产品推荐
相关产品推荐

