【问题标题】:Not able to use Google fonts in Flutter sliverappbar无法在 Flutter sliverappbar 中使用 Google 字体
【发布时间】:2021-08-20 09:22:50
【问题描述】:

我在我的应用中使用 Google 字体。我已经在我的应用程序中成功地做到了这一点,但由于某种原因,我无法在 SliverAppBar 中使用它。我得到的错误是:

The constructor being called isn't a const constructor.

我正在尝试更改字体的代码是:

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

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

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

如果我是您在代码// Text('Inventory'), 中看到的简单文本框,那么我没有问题。您如何在 SliverAppbar 中使用 Google 字体?

【问题讨论】:

  • 从 FlexibleSpaceBar 中移除 const 可能会起作用。

标签: flutter google-fonts flutter-sliverappbar


【解决方案1】:

所以,我认为 google_fonts 包类没有实现 const 构造函数,因为默认情况下,它将为字体执行 HTTP Internet 请求。这意味着字体是在 RUNTIME 加载的,这意味着它不能是 const。即使您使用“GoogleFonts.config.allowRuntimeFetching = false;”关闭该功能,我认为包作者也不打算让您以这种方式使用它;因此没有 const 构造函数。

解决此问题的唯一方法是仅使用添加自定义字体的常规方法,而不使用 google_fonts 包。这实际上更安全,因为字体将被烘焙到您的应用程序中,并且可以在没有 Internet 的情况下安全使用。唯一的缺点是它会使您的应用程序变得更大。

这里是当前添加自定义字体方法的链接:

https://docs.flutter.dev/cookbook/design/fonts

【讨论】:

  • 这似乎是一个链接唯一的答案。最好在您的答案中发布相关信息,以防将来链接消失。
  • 我把链接贴出来了,反正他们还是通过搜索引擎查找相关信息会更好;如果我只是在这里复制粘贴它并且它在未来发生变化,那么答案和链接都不会无用吗? Flutter 仍在发生变化,如果他们编辑该页面,但我的答案仍然过时,那么我将无济于事,但会增加更多的混乱。如果您要我复制粘贴整篇文章,我可以这样做,但这似乎没有必要,因为我也可以删除链接,并且消息的相关部分仍然存在。告诉我你想要什么。
猜你喜欢
  • 1970-01-01
  • 2021-07-10
  • 2019-09-28
  • 2020-02-01
  • 2020-04-14
  • 1970-01-01
  • 2020-06-26
  • 2020-07-20
  • 2014-02-04
相关资源
最近更新 更多