如何使用 pubspec.yaml 资产系列中指定字体列表中的特定字体

How to use a specific font from a list of fonts specified in a asset family in pubspec.yaml

假设我在 pubspec.yaml 文件中添加了以下几行 字体:

fonts:
- family: GreatVibes
  fonts:
    - asset: fonts/GreatVibes-Regular.ttf
    - asset: fonts/GreatVibes-Bold.ttf

我在我的应用程序中通过以下代码行使用它。

new Text('My New Font',
        style: new TextStyle(
          color: Colors.white,
          fontFamily: 'GreatVibes',
          fontSize: 16.0,
        )),

我的问题是,在前面提供的两个.ttf文件中,flutter如何决定使用哪个文件?

假设 flutter 决定使用 GreatVibes-Bold.ttf,我该怎么做才能让它使用 GreatVibes-regular.ttf

检查这些链接:

https://flutter.io/docs/cookbook/design/fonts

如果我对这些字体的理解正确 - 它必须是这样的:

fonts:
- family: GreatVibes
  fonts:
    - asset: fonts/GreatVibes-Regular.ttf
    - asset: fonts/GreatVibes-Bold.ttf
      weight: 700
    - asset: fonts/GreatVibes-Italic.ttf
      style: italic

然后

new Text('My New Font',
    style: new TextStyle(
      color: Colors.white,
      fontFamily: 'GreatVibes',
      fontWeight: FontWeight.w700,
      fontSize: 16.0,
    )),

您可以直接将它用于小部件样式,或者使用主题对象,我更喜欢从一个位置控制整个应用程序,这里是 main.dart 的示例:

return MaterialApp(
  title: 'Flutter Demo',
  theme: ThemeData(
      primarySwatch: Colors.purple,
      accentColor: Colors.deepOrange,
      **fontFamily: 'Lato'**),

 ....
  },
);