使用谷歌字体,我在正确显示字体权重方面没有问题。但一旦我使用自定义字体,我就有麻烦了。我使用的是sofia pro
字体,我已经将字体放入我的资产文件夹中,并由pubspc.yaml
设置如下:
fonts:
- family: SofiaPro
fonts:
- asset: assets/fonts/SofiaProUltraLight.ttf
weight: 200
- asset: assets/fonts/SofiaProLight.ttf
weight: 300
- asset: assets/fonts/SofiaProRegular.ttf
weight: 400
- asset: assets/fonts/SofiaProMedium.ttf
weight: 500
- asset: assets/fonts/SofiaProSemiBold.ttf
weight: 600
- asset: assets/fonts/SofiaProBold.ttf
weight: 700
- asset: assets/fonts/SofiaProBlack.ttf
weight: 900
- family: SofiaProRegular
fonts:
- asset: assets/fonts/SofiaProRegular.ttf
weight: 400
然后我用两种方式引用字体——一种是在它自己的字体家族中,没有其他权重,另一种是它在其他权重列表中。
Container(
height: height,
child: Center(
child: Text(
"This text has weight w400",
style: TextStyle(fontFamily: 'SofiaPro', fontSize: size, fontWeight: FontWeight.w400),
)),
),
Container(
height: height,
child: Center(
child: Text(
"This text has weight w400",
style: TextStyle(fontFamily: 'SofiaProRegular', fontSize: size, fontWeight: FontWeight.w400),
)),
),
所以,唯一的区别是我所指的字体系列,但显示的文本只会正确显示在它本身所在的字体系列中。对于另一个,我得到了列表中第一个字体的权重。不确定我在这里错过了什么。
您提供的字体中可能根本没有字体家族SofiaProRegular。
请注意,您为SofiaPro和索菲亚ProRegular系列添加了两次assets/fonts/SofiaProRegular.ttf
。
如果要在两个字体族中使用相同的字体,请尝试用不同的名称复制字体文件。