【问题标题】:Flutter custom fonts not loading颤振自定义字体未加载
【发布时间】:2019-03-30 16:43:19
【问题描述】:

已解决:我仍然不确定问题出在哪里,但我通过简单地创建一个新的 Flutter 项目,在新项目中设置字体,然后粘贴我的.dart 文件到新项目中。即使一切都完全相同(据我所知),它工作得很好。去搞清楚。


我试图在我的应用程序中使用自定义字体但没有成功。

这是我的 pubspec.yaml 文件的字体部分:

fonts:
  - family: Muli
    fonts:
      - asset:  fonts/Muli-Light.ttf

  - family: LibreBaskerville
    fonts:
      - asset:  fonts/LibreBaskerville-Regular.ttf

在我的应用中:

Widget _sectionTitle(String text) {
  return Container( 
  padding: EdgeInsets.fromLTRB(25.0, 0.0, 25.0, 5.0),
  child: Text(text,          
  style: new TextStyle(fontFamily: 'Muli', fontSize: 50.0),
  ));
  }
Widget _sectionText(String text){
    return Container (
    padding: EdgeInsets.fromLTRB(25.0, 0.0, 25.0, 15.0),
    child: Text(text, style: TextStyle(fontFamily: 'LibreBaskerville', fontSize: 20.0)),
    );
 }

在我尝试过的事情中(多次):

  • 从模拟器中删除已安装的文件
  • 从 Android Studio 运行与从 VSCode 运行
  • 将 .ttf 文件移动到不同的文件夹
  • 下载其他字体
  • 使用在线 YAML 验证器
  • 扑干净

我假设 pubspec.yaml 文件有问题,但我看不出它可能是什么。

任何建议将不胜感激。谢谢。

编辑:刚刚尝试使用相同的 Pubspec.yaml 字体信息创建一个新的默认 Flutter 应用程序。我将自定义字体添加到 MaterialApp 小部件并且它可以工作......所以问题可能不是 yaml。

【问题讨论】:

    标签: flutter


    【解决方案1】:

    从测试设备中删除应用程序,然后执行flutter clean,重新运行

    flutter clean
    

    【讨论】:

      【解决方案2】:

      如果你使用的是 vs code,你可以在终端运行以下命令: flutter run --enable-software-rendering。 这应该可以解决问题。

      【讨论】:

        【解决方案3】:

        这些是您在向应用中添加自定义字体时需要遵循的步骤。

        第 1 步:将字体文件 (Abc.ttf) 放在 assets 文件夹中(如果没有,可能需要自己创建)

        第 2 步:打开您的 pubspec.yaml 文件并添加此文件(跟踪空格

          fonts:
           - family: MyFont
             fonts:
               - asset: assets/Abc.ttf
        

        第 3 步:在终端中运行 flutter packages get(或使用 IDE 中的 Packages get 选项)

        第 4 步:像这样在代码中使用自定义字体

        Text("Example", style:TextStyle(fontFamily: "MyFont")) 
        

        【讨论】:

        • 是的,据我所知,这正是我所做的。我什至将旧 pubspec.yaml 的字体部分剪切并粘贴到新的工作项目中,这似乎表明它不是 yaml(除非在剪切和粘贴过程中我做了一些微妙的事情)。
        【解决方案4】:

        我知道这很老了,但以防万一有人遇到这个:

        我有一个类似的问题,资产图像不会加载到一个项目中,而它在另一个项目中加载另一个没有问题,一切显然配置方式相同。

        问题在于它不能正常工作的是一个颤振包项目。在这里,您需要明确指定资产图像和资产字体的包名。

        在这里查看我的详细回答:https://stackoverflow.com/a/67526610/8539278

        【讨论】:

          【解决方案5】:

          我遇到了同样的问题,我找到了答案。 似乎需要 ios 文件夹和 android 文件夹才能以某种方式使用字体。 我不知道为什么需要它,但这是“字体有效”和“无效”之间的唯一区别。

          目前,我只专注于 WEB,所以我删除了 ios 文件夹和 android 文件夹。 我想,从现在开始,我把那些文件夹当作护身符。

          【讨论】:

            【解决方案6】:

            尝试在模拟器中重新安装apk

            【讨论】:

            • 我不确定这应该回答什么问题。
            • 我有同样的问题,自定义字体无法替换。所以我在模拟器中卸载应用程序并再次运行程序,然后它工作,字体类型改变了。
            猜你喜欢
            • 1970-01-01
            • 2020-09-26
            • 1970-01-01
            • 2016-10-29
            • 1970-01-01
            • 2014-12-14
            • 1970-01-01
            • 2020-08-11
            • 1970-01-01
            相关资源
            最近更新 更多