如何在Flutter中更改默认字体族?

71

我该如何将我的应用程序中的每个文本更改为使用特定的字体?我可以使用TextStyle()逐个更改它们,但是如何使我的应用程序默认使用特定的字体?你能向我展示如何做吗?


这个链接可能会解决你的问题:https://stackoverflow.com/a/64549111 - Saeqa
如何在CupertinoApp中实现此操作的语法? - C RICH
4个回答

110
你可以按照以下步骤更改Flutter应用程序的默认字体系列:
1. 将字体文件添加到您的项目文件夹中。例如,将其放在“项目文件夹>资产>字体>印地语”中。
2. 在项目的pubspec.yaml文件中声明带有字体文件和样式的字体系列(示例):

enter image description here

  1. 在主类文件的MaterialApp小部件中,将默认字体族定义为:

enter image description here


是的,文档也是这么说的。但对我来说没有用 :( - Paul Sumpner
@PaulSumpner,你可能做错了什么 :) - OMi Shah
1
可能吧!谢谢 :) - Paul Sumpner
我已经按照所有步骤正确操作并再次检查过了,但是还是不起作用 :( - Rasoul707
1
@OMiShah,是的,我已经做了一切正确的事情,但现在它已经修复了。我卸载了应用程序,然后重新安装它:))) 谢谢兄弟。 - Rasoul707
显示剩余2条评论

51

如果你想使用这些Google字体,建议使用来自Material团队的官方google_fonts软件包。

  • 添加到pubspec.yaml文件中
dependencies:
  google_fonts: ^2.1.0 
  • 像这样覆盖默认字体
MaterialApp(
  theme: ThemeData(
    textTheme: GoogleFonts.latoTextTheme(
      Theme.of(context).textTheme,
    ),
  ),
);


1
似乎google_fonts存在问题,它与fontWeights的兼容性不太好。 - UTKARSH Sharma

9

在 pubspec.yaml 中添加 Google Fonts

dependencies:
  google_fonts: ^2.1.0 

使用 fontFamily 函数。
MaterialApp(
  theme: ThemeData(
    fontFamily: GoogleFonts.lato().fontFamily,
  ),
);

记得导入谷歌字体

import 'package:google_fonts/google_fonts.dart';

2

对我来说,只要我写两次,所有文本小部件都可以正常工作 -

ThemeData(
   fontFamily: 'Varela',             // <-- 1
   textTheme: Theme.of(context)
      .textTheme
      .apply(fontFamily: 'Varela'),  // <-- 2
),

在这种情况下,具体是什么背景? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接