Flutter 在Flatter应用程序中添加自定义字体的混乱

Flutter 在Flatter应用程序中添加自定义字体的混乱,flutter,dart,fonts,Flutter,Dart,Fonts,我知道如何在应用程序中添加自定义字体。但是在重量和风格上的混淆 例如 如果我在应用程序和我应用程序的资产文件夹中添加Montserrat字体,那么它只有Montserrat Regular.ttf,所以我在pubspec.yaml文件中编写 fonts: - family: Montserrat fonts: - asset: asset/fonts/Montserrat-Regular.ttf 在文本小部件中,我使用了所有3个普通、粗体和斜体,并且工作正

我知道如何在应用程序中添加自定义字体。但是在重量和风格上的混淆

例如

如果我在应用程序和我应用程序的资产文件夹中添加
Montserrat
字体,那么它只有
Montserrat Regular.ttf
,所以我在pubspec.yaml文件中编写

 fonts:
    - family: Montserrat
      fonts:
        - asset: asset/fonts/Montserrat-Regular.ttf
文本
小部件中,我使用了所有3个普通、粗体和斜体,并且工作正常

Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'This is normal font',
              style: TextStyle(
                fontFamily: 'Montserrat',
              ),
            ),
            SizedBox(height: 10),
            Text(
              'This is bold font',
              style: TextStyle(
                fontFamily: 'Montserrat',
                fontWeight: FontWeight.bold
              ),
            ),
            SizedBox(height: 10),
            Text(
              'This is italic font',
              style: TextStyle(
                  fontFamily: 'Montserrat',
                fontStyle: FontStyle.italic
              ),
            ),
          ],
        )
Raleway Italic.ttfRobotoMono Bold.ttf????他们应该只在asset中添加常规的字体,我想这样行吗

还有我上面代码中的其他内容。如果我设定

  • 第一个文本“fontWeight:fontWeight.w300”
  • 2st文本“fontWeight:fontWeight.w500”
我看不出有什么不同

如果我设定

  • 第一个文本“fontWeight:fontWeight.w600”
  • 2st文本“fontWeight:fontWeight.w900”
我看不出有什么不同


为什么,有人会解释我

如果您的字体具有变体(不同于斜体或粗体/中文本的字体),则可以在同一字体系列中定义它们:

  fonts:
    - family: Roboto
      fonts:
        - asset: assets/fonts/roboto/Roboto-Black.ttf
          weight: 900
        - asset: assets/fonts/roboto/Roboto-BlackItalic.ttf
          style: italic
          weight: 900
        - asset: assets/fonts/roboto/Roboto-Bold.ttf
          weight: 700
        - asset: assets/fonts/roboto/Roboto-BoldItalic.ttf
          style: italic
          weight: 700
        - asset: assets/fonts/roboto/Roboto-Italic.ttf
          style: italic
        - asset: assets/fonts/roboto/Roboto-Light.ttf
          weight: 300
        - asset: assets/fonts/roboto/Roboto-LightItalic.ttf
          style: italic
          weight: 300
        - asset: assets/fonts/roboto/Roboto-Medium.ttf
          weight: 500
        - asset: assets/fonts/roboto/Roboto-MediumItalic.ttf
          style: italic
          weight: 500
        - asset: assets/fonts/roboto/Roboto-Regular.ttf
        - asset: assets/fonts/roboto/Roboto-Thin.ttf
          weight: 100
        - asset: assets/fonts/roboto/Roboto-ThinItalic.ttf
          style: italic
          weight: 100
在我的机器人示例中:

如果使用字体系列Roboto和具有默认权重的文本,则将使用Roboto-Regular.ttf

但是如果您使用斜体样式,它将使用Roboto-italic.ttf

我有粗体、中体、细体和每种斜体的变体

它使字体比软件设计的字体更加精美

pubspec.yaml
文件中,您有
字体
,可以有一个或多个子
-系列
,可以有一个或多个子
字体
(对于与css
字体系列中的工作方式完全相同的变体:Arial、Helvetica、sans serif;


字体
可以有一个或多个
-asset
的子项,它可以有
权重
和/或
样式
作为子项,也可以没有子项。

我有同样的问题。flatter甚至不需要斜体.otf来呈现斜体样式的文本。这很令人困惑。所以我花了一些时间做了一个小实验:

蒙特塞拉特48pt超轻标准颤振生成斜体文本 V.S.蒙特塞拉特48磅超轻斜体.otf文本


他们看起来不一样!结果表明,颤振可以自动生成一些“斜体风格”的文字,无论它目前有什么字体。但这看起来不一定与designer创建的真正的斜体字体文件相同。

如果我想使用Roboto瘦字体,那么我应该制作另一个家族资产吗?like-font:-系列:Roboto字体:-资产:资产/字体/Roboto/Roboto-Black.ttf-系列:robototothin字体:-资产:资产/字体/Roboto/Roboto-Thin.ttf
  fonts:
    - family: Roboto
      fonts:
        - asset: assets/fonts/roboto/Roboto-Black.ttf
          weight: 900
        - asset: assets/fonts/roboto/Roboto-BlackItalic.ttf
          style: italic
          weight: 900
        - asset: assets/fonts/roboto/Roboto-Bold.ttf
          weight: 700
        - asset: assets/fonts/roboto/Roboto-BoldItalic.ttf
          style: italic
          weight: 700
        - asset: assets/fonts/roboto/Roboto-Italic.ttf
          style: italic
        - asset: assets/fonts/roboto/Roboto-Light.ttf
          weight: 300
        - asset: assets/fonts/roboto/Roboto-LightItalic.ttf
          style: italic
          weight: 300
        - asset: assets/fonts/roboto/Roboto-Medium.ttf
          weight: 500
        - asset: assets/fonts/roboto/Roboto-MediumItalic.ttf
          style: italic
          weight: 500
        - asset: assets/fonts/roboto/Roboto-Regular.ttf
        - asset: assets/fonts/roboto/Roboto-Thin.ttf
          weight: 100
        - asset: assets/fonts/roboto/Roboto-ThinItalic.ttf
          style: italic
          weight: 100