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

Flutter中SliverAppBar使用Google Fonts报非const构造函数错误如何解决

报错原因

你给FlexibleSpaceBar加了const修饰符,要求整个组件在编译期就确定为常量,但GoogleFonts.acme()方法生成的字体样式是运行时动态构造的,没有const构造函数,不满足常量编译要求,因此触发报错。你注释掉GoogleFonts用普通Text的默认样式时,样式是编译期可确定的常量,所以不会报错。

解决方案

直接删除FlexibleSpaceBar前面的const修饰符即可,代码修改后如下:

SliverAppBar(
  pinned: true,
  snap: false,
  floating: false,
  expandedHeight: 200.0,

  leading: IconButton(
    color: Colors.black38,
    icon: Icon(Icons.arrow_back),
    onPressed: () {
      Navigator.pushReplacementNamed(
          context,
          '/');
    },
  ),

  backgroundColor: Globals().appBar,
  // 移除此处的const修饰符
  flexibleSpace: FlexibleSpaceBar(
    title: Text('Inventory', style: GoogleFonts.acme(color: Globals().white_text,fontSize: 20),) ,
    background: FittedBox(fit:BoxFit.cover,child: Image(image:AssetImage('images/bag.jpg'))),
  ),
),

如果需要保留const优化,也可以在全局ThemeData中提前配置AppBar的文本样式为Google Fonts的acme字体,此时SliverAppBar的Text无需单独指定style,也可保留const修饰符。

内容的提问来源于stack exchange,提问作者Waseem Ahmed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:09:02