gpt4 book ai didi

flutter - 在 Flutter 中添加自定义字体,FontWeight 不影响文本

转载 作者:行者123 更新时间:2023-12-04 00:51:28 25 4
gpt4 key购买 nike

image pubspec
我要设置Noir Pro作为我的 flutter 应用程序的默认字体系列。
默认 Roboto fontFamily 更改为 NoirPro 但字体粗细 e.g(.w400,w500,w600)工作不正常。我找不到任何其他在线帮助。这让我很沮丧
pubspec.yaml

fonts:
- family: NoirPro
fonts:
- asset: resources/fonts/NoirPro_Light.ttf
weight: 300
- asset: resources/fonts/NoirPro_Normal.ttf
weight: 400
- asset: resources/fonts/NoirPro_Medium.ttf
weight: 500
- asset: resources/fonts/NoirPro_Bold.ttf
weight: 700
- asset: resources/fonts/NoirPro_Heavy.ttf
weight: 800
In main.dart
 theme: ThemeData(
fontFamily: 'NoirPro',
canvasColor: Colors.white,
),

最佳答案

我找到了原因及其非常微不足道的:
Flutter 根据字体本身的元数据匹配系列中的字体,而不是 pubspec.yaml 中声明的样式描述符。
我的 NoirPro、中等和粗体字体包含元数据,分别将它们的权重声明为 400、410 和 420。但是,Flutter 文本子系统仅支持表示偶数 100 ( https://api.flutter.dev/flutter/dart-ui/FontWeight-class.html ) 的字体权重桶。所以所有这三种字体都映射到 FontWeight.w400,字体样式匹配器无法根据权重在这些字体之间进行选择。
(您可以使用此站点检查字体文件的元数据:https://fontdrop.info/)
在 pubspec.yaml 中将这些字体声明为不同的系列可以解决这个问题。
当前,请求的权重是根据字体本身定义的权重元数据选择的。 pubspec.yaml 中的权重被忽略。
应该更新文档(说明书)以反射(reflect)这一点,以免混淆其他开发人员。
现在我的 pubspec.yaml 是:

fonts:
- family: NoirProNormal
fonts:
- asset: resources/fonts/NoirPro_Normal.ttf
- family: NoirProLight
fonts:
- asset: resources/fonts/NoirPro_Light.ttf
- family: NoirProMedium
fonts:
- asset: resources/fonts/NoirPro_Medium.ttf
- family: NoirProBold
fonts:
- asset: resources/fonts/NoirPro_Bold.ttf
- family: NoirProHeavy
fonts:
- asset: resources/fonts/NoirPro_Heavy.ttf
当使用文本小部件时:
Text(
"Hello World",
style: TextStyle(
fontSize: size.width * 0.075,
fontFamily: "NoirProMedium",
color: Colors.white)
),

关于flutter - 在 Flutter 中添加自定义字体,FontWeight 不影响文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66139221/

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