【问题标题】:Flutter - Custom Font not displayingFlutter - 自定义字体不显示
【发布时间】:2017-11-06 01:50:38
【问题描述】:

这是我的 pubspec.yaml 文件的摘录:

flutter:
  uses-material-design: true
  fonts:
   - family: Coiny
     fonts:
       - asset: fonts/Coiny-Regular.ttf

我正在尝试使用 Google 字体页面中名为“Coiny”的字体。我在根目录中创建了一个字体文件夹并将其放入其中。

在我的代码中,我这样做:

new Text("Testtext", style: new TextStyle(fontFamily: "Coiny")),

但它没有效果。我过去在使用 Barrio 字体时遇到过类似的问题。但它似乎在一段时间后起作用,而这不是这种情况。

【问题讨论】:

  • 如果你更喜欢谷歌字体,我认为 google_fonts 包可以很容易地帮助这里stackoverflow.com/a/59223217/8253662
  • 我觉得这是 Flutter 开发者必须要纠正的问题。卸载不是理想的开发方式

标签: flutter dart fonts flutter-font


【解决方案1】:

您可能想尝试从设备中删除该应用并重新安装。根据您的启动方式,它可能不会覆盖旧的安装文件。

【讨论】:

  • 你是对的。我从 vm 运行它,在我的实际设备上它可以工作。
【解决方案2】:

我有同样的问题。如果您通过模拟器进行测试,您只需停止并重新启动它。通过 VSCode 你可以停止运行进程(右上角的红色方块)然后run -> Run without debuggingStart Debugging

【讨论】:

    【解决方案3】:

    我的font: 不在flutter: 之下。我将 font: 部分移到了 flutter: 的正下方,并且开始工作了。

    flutter:
    
      fonts:
        - family: Test
          fonts:
          - asset: assets/fonts/Font-Test.ttf
    

    【讨论】:

      【解决方案4】:

      字体声明对齐方式与 Flutter pubspec.yaml 不同。它应该如下所示。

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

      您可以查看here

      【讨论】:

      • 额外不必要的字体配置,这对每个字体系列都足够了:fonts: - family: Montserrat fonts: - asset: assets/fonts/Montserrat-Thin.ttf weight: 100 - asset: assets/fonts/Montserrat-ExtraLight.ttf weight: 200 - asset: assets/fonts/Montserrat-Light.ttf weight: 300 - asset: assets/fonts/Montserrat-Regular.ttf weight: 400 - asset: assets/fonts/Montserrat-Medium.ttf weight: 500 - asset: assets/fonts/Montserrat-Bold.ttf weight: 700
      【解决方案5】:

      每当您对pubspec.yaml 文件进行更改时,最好从 IDE 中停止正在进行的 dart 进程并完全重新启动。

      如果您进行热重载或热重启,引擎可能无法将新添加的数据提取到您的文件中。如果没有任何效果,您应该使用@Collin 回答,卸载并重新安装该应用程序。

      【讨论】:

      • 它适用于您的方法 :) 我只是将手机从电缆中取出并重新安装。
      【解决方案6】:

      只需从您的 android 设备上卸载以前的颤振应用程序 apk 并再次运行应用程序。这将解决您的问题。如果这不起作用,请清除设备缓存并重试。

      【讨论】:

        【解决方案7】:

        您已在应用程序中添加新文件,因此您必须 关闭正在运行的设备,然后重启模拟器。

        -停止正在运行的模拟器 - 运行模拟器

        它适用于我的情况。

        【讨论】:

          【解决方案8】:

          我尝试了所有方法,但 pubspec.yaml 中的更改并没有产生任何影响。然后我创建了一个新项目。将字体文件复制到相应的文件夹,对 pubspec.yaml 进行所有更改,将代码粘贴到我的 main.dart 文件中。我确保一切就绪,然后在模拟器和 viola 中运行项目,所有字体都完美呈现。

          【讨论】:

            【解决方案9】:

            我还有另一个原因。考虑从姓氏中删除空格。例如,使用 "MavenPro" 而不是 "Maven Pro"

            还要检查您是否将 fonts 部分放入 flutter 部分。

            【讨论】:

              【解决方案10】:

              Idek,有时我发现您需要完全关闭您的模拟器或设备并重新安装才能使某些字体正常工作。 我还发现某些字体只是拒绝工作。 尝试使用不同的字体来确认您的 pubspec 和 TextThemes 对于已知的工作字体实际上是正确的。

              【讨论】:

                【解决方案11】:

                在 pubspec.yaml 中设置

                 fonts:
                  - family: Montserrat
                    fonts:
                      - asset: assets/fonts/Montserrat-Regular.ttf
                      - asset: assets/fonts/Montserrat-Bold.ttf
                
                
                    and then make sure that clean and build
                

                【讨论】:

                  【解决方案12】:

                  我遇到了字体问题并收到以下两个警告:

                  Warning: No fonts specified for font [font family name]
                  Warning: Missing family name for font.
                  

                  问题是我输入了错误的 pubspec.yaml fonts 部分。

                  确保您的 pubspec.yaml 看起来像这样:

                  flutter:
                  
                    fonts:
                      - family: FontFamily
                        fonts:
                        - asset: fonts/Font-Medium.ttf
                  
                    uses-material-design: true
                  

                  然后您需要flutter clean,然后是flutter pub get。如果所有这些都失败了,请尝试卸载该应用程序,然后在执行上述操作后再次重新安装(如 Collin 所述)。

                  我在嵌套的 fonts 声明旁边有一个“-”,这导致了这些错误(并且字体不起作用)。

                  【讨论】:

                    【解决方案13】:

                    1.检查缩进。每个子属性的左侧都有 2 个空格。不要使用制表符空格。

                    2.停止dart文件执行并尝试冷启动模拟器。

                    3. 尝试热重启。

                    请参阅this YouTube 教程。

                    【讨论】:

                      【解决方案14】:

                      就我而言,字体资源文件已损坏。首先尝试将它们安装在本地计算机上。如果它给你一个错误,那么它们就被破坏了。

                      【讨论】:

                        【解决方案15】:

                        我也遇到这个问题,设置字体B后,显示不正确。 但对我来说问题是我在两个字体系列之间做了一条空线,如下所示

                          fonts:
                            - family: A
                              fonts:
                                - asset: assets/fonts/A-Regular.ttf
                        
                            - family: B
                              fonts:
                                - asset: assets/fonts/B-Regular.ttf
                        

                        删除两个字体系列之间的空行,这对我来说是可行的解决方案,记住 YAML 是 INDENTATION 敏感的

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 2013-02-09
                          • 1970-01-01
                          • 1970-01-01
                          • 2018-11-26
                          • 1970-01-01
                          • 2019-12-20
                          • 2021-06-22
                          相关资源
                          最近更新 更多