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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:18:20