Flutter自定义字体多重粗细无法正常工作

时间:2020-04-16 14:30:37

标签: flutter flutter-layout

我正试图在颤振中使用具有多重粗细的家庭字体。但是,当我使用粗体为粗体(w700)粗体(w800)的字体样式时,它不起作用。仅在 semibold / medium(w600)

之前有效

这是我的字体资源文件夹结构:

myapp\assets\fonts\unisans\unisans_Bold.ttf
myapp\assets\fonts\unisans\unisans_Heavy.ttf
myapp\assets\fonts\unisans\unisans_Reguler.ttf
myapp\assets\fonts\unisans\unisans_Semibold.ttf

pubspec.yaml中定义的字体:

 fonts:
    - family: Unisans
      fonts:
        - asset: assets/fonts/unisans/unisans_Reguler.ttf
        - asset: assets/fonts/unisans/unisans_Semibold.ttf
          weight: 600
        - asset: assets/fonts/unisans/unisans_Bold.ttf
          weight: 700
        - asset: assets/fonts/unisans/unisans_Heavy.ttf
          weight: 800

然后像这样颤抖地称呼他们:

Text(
  "Halo",
  style: TextStyle(
     color: Theme.of(context).primaryColor,
     fontFamily: "Unisans",
     fontWeight: FontWeight.w800,
     fontSize: 30),
)

我也尝试了FontWeight.w700,但仍然没有应用。它仅适用于 reguler w600 样式。

颤动是否不能处理多种粗细字体,或者取决于字体?

1 个答案:

答案 0 :(得分:0)

我突然发现了问题。非常琐碎的问题。这是因为每种字体都有不同的“字体名称”。例如:Unisans-Bold具有字体名称(UnisansBold)而不是Unisans。 Unisans-Heavy具有字体名称(UnisansHeavy)而不是Unisans。在颤动中,要使粗细样式起作用,所有字体文件必须具有相同的字体名称。在Windows OS中打开字体文件时,我会检查字体名称。但是我仍然很好奇,即使我们在pubspec.yaml上声明了它,为什么还要慌张地考虑它。