【问题标题】:How can I know when a google font have been loaded completely in flutter for web?我怎么知道什么时候谷歌字体已经完全加载到 web 的 Flutter 中?
【发布时间】:2020-08-30 16:48:06
【问题描述】:

我目前正在用颤振写一个网页。在那,我正在使用 GoogleFonts 包,如果有办法做到这一点,我想知道字体何时完全加载。 我想知道的原因如下。

我正在使用 AutoSizeText 包 (https://pub.dev/packages/auto_size_text) 包装谷歌字体文本,当您第一次打开页面时它无法正常工作,因为 AutoSizeText 优化了默认字体的字体大小,而不是谷歌字体,因为尚未加载谷歌字体。因此,谷歌字体有时会溢出边界。我的解决方法是通过执行类似的操作在几秒钟后强制重新加载小部件,但感觉不对。

@override
  void initState() {
    super.initState();
    waitForSomeMoment();
  }

  void waitForSomeMoment() async {
    await Future.delayed(
      Duration(milliseconds: 1000),
      () {
        setState(() {});
      },
    );
  }

【问题讨论】:

    标签: flutter flutter-web


    【解决方案1】:

    我认为没有办法知道这一点。但是,您可以在资产中捆绑字体文件。查看google_fonts 页面的末尾以了解如何操作。

    【讨论】:

    • 是的,我实际上正在这样做,但即使它在我的资产中,加载字体仍然会有一点延迟。也许这是一个特定于网络的东西(我不确定,因为我目前没有应用程序开发环境)。
    • 好吧,虽然我同意这不是最优的,但单次重建也不是很戏剧化。您可以随时在 github repo 上打开问题以请求回调功能。
    • 我想检查是否有一种无需事先更改源代码的方法。我会打开一个问题。谢谢你的链接。
    • 没问题! :)
    • 我在移动设备上也遇到了这种小延迟。您是否已经创建了问题?你是如何解决这个问题的?
    猜你喜欢
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多