gpt4 book ai didi

flutter - 在 flutter app 中添加自定义字体的困惑

转载 作者:IT王子 更新时间:2023-10-29 06:56:10 29 4
gpt4 key购买 nike

我知道如何在应用中添加自定义字体。但是 weightstyle 混淆了。

例如

如果我在应用程序中添加 Montserrat 字体,并且在我的应用程序的 asset 文件夹中只有 Montserrat-Regular.ttf 所以在我写的 pubspec.yaml 文件中。

 fonts:
- family: Montserrat
fonts:
- asset: asset/fonts/Montserrat-Regular.ttf

Text 小部件中,我使用了所有 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
),
),
],
)

因此,如果常规 字体适用于粗体和斜体,那么在Official tutorial 中为什么要加

flutter:
fonts:
- family: Raleway
fonts:
- asset: fonts/Raleway-Regular.ttf
- asset: fonts/Raleway-Italic.ttf
style: italic
- family: RobotoMono
fonts:
- asset: fonts/RobotoMono-Regular.ttf
- asset: fonts/RobotoMono-Bold.ttf
weight: 700

Raleway-Italic.ttfRobotoMono-Bold.ttf ????他们应该只在 Assets 中添加常规字体,我认为它可以工作吗?

还有我上面代码中的另一件事。如果我设置

  • 第一个文本“fontWeight:FontWeight.w300”
  • 第二个文本“fontWeight:FontWeight.w500”

我找不到任何区别。

OR

如果我设置

  • 第一个文本“fontWeight:FontWeight.w600”
  • 第二个文本“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 字体系列和具有默认粗细的文本,它将使用 Roboto-Regular.ttf

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

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

它使字体比软件样式的字体更优美...

pubspec.yaml 文件中,您有 fonts 可以有一个或多个 child - family 可以有一个或多个 child 字体(适用于与 css font-family:Arial、Helvetica、sans-serif; 中的工作方式完全相同的变体)。

fonts 可以有一个或多个 - asset 的 child ,它可以有 weight 和/或 style作为 child 或没有 child 。

关于flutter - 在 flutter app 中添加自定义字体的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57002995/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com