1

使用谷歌字体我没有问题正确显示字体权重。但是,一旦我使用自定义字体,我就会遇到麻烦。我正在使用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),
  )),
),

因此,唯一的区别是我所指的字体系列,但显示的文本仅针对它本身属于一个系列的字体正确显示。对于另一个我得到列表中第一个字体的权重。不知道我在这里缺少什么。

4

1 回答 1

0

您提供的字体中可能根本没有字体系列SofiaProRegular 。

请注意,您为SofiaProSofiaProRegularassets/fonts/SofiaProRegular.ttf系列添加了两次。

如果要在两个字体系列中使用相同的字体,请尝试以不同的名称复制字体文件。

于 2020-04-27T13:50:39.603 回答