我有一个项目,其文件夹结构如下:
app/
widgets/
其中app
包含主要的flutter应用程序,widgets
是一个flutter包,包含app
和任何其他可能需要的项目使用的可重用组件。
我试图在widgets/
文件夹中的一个小部件中使用自定义字体,但当我运行app
并尝试使用此小部件时,无法识别字体,并且小部件标题不显示(可能是因为字体导入不正确)。
我还没有在app/pubspec.yaml
中导入字体(不确定是否应该导入)
我将自定义字体添加到widgets/assets/fonts
文件夹并导入widgets/pubspec.yaml
,如下所示:
flutter:
fonts:
- family: <FONT_NAME>
fonts:
- asset: assets/fonts/<FILE>
weight: 400
我在widgets/<WIDGET>
中使用这个字体,就像这样:
final style = TextStyle(fontFamily: <FONT_NAME>, fontWeight: FontWeight.w600, ontSize: 48, height: 48);
....
我在这个设置中错过了什么?
OBS:app/
是一个Web项目,不确定它是否有任何区别。
1条答案
按热度按时间zpgglvta1#
在我的情况下,它最终成为一个与字体导入无关的问题。
我使用
widgets/<WIDGET>
中FontStyle
的height
属性作为绝对值,而不是乘数。例如:使用而不是
因此,字体被正确导入,但它没有被呈现,因为字体的实际高度是48 * 48 = 2304。
在
app/
中使用widgets/
字体的最终设置是:app/pubspec.yaml
删除字体导入widgets/assets/fonts
移动到widgets/lib/fonts
->,以便将字体与代码源文件一起导入widgets/pubspec.yaml
,以从lib/fonts
而不是assets/fonts
导入文件。现在,当在
app/pubspec.yaml
中导入widgets/
时,自定义字体将按预期工作。