Flutter 的字体和排版
排版涵盖了字体或字体的样式和外观:它指定字体的粗细、倾斜度、字母之间的间距以及文本的其他视觉方面。
并非所有字体都是相同的。字体是一个庞大的主题,超出了本网站的范围,但是,本页面讨论了 Flutter 对可变字体和静态字体的支持。
可变字体
可变字体(也称为 OpenType 字体)允许你控制文本样式的预定义方面。可变字体支持特定的轴,例如宽度、粗细、倾斜度(仅举几例)。用户在指定字体时可以选择沿连续轴的任何值。
但是,字体必须首先定义可用的轴,而这并不总是容易弄清楚的。如果你正在使用 Google 字体,你可以使用下一节中描述的类型测试器功能了解可用的轴。
使用 Google Fonts 类型测试器
Google Fonts 网站提供可变字体和静态字体。使用类型测试器来了解有关其可变字体的更多信息。
- 要调查可变的 Google 字体,请访问 Google Fonts 网站。请注意,在每个字体卡片的右上角,它表示可变字体的可变,或x 样式,表示静态字体支持多少种样式。
- 要查看所有可变字体,请选中仅显示可变字体复选框。
- 向下滚动(或使用搜索字段)以查找 Roboto。这列出了几个 Roboto 可变字体。
- 选择Roboto Serif以打开其详细信息页面。
- 在详细信息页面上,选择类型测试器选项卡。对于 Roboto Serif 字体,可变轴列如下所示
实时移动任意轴上的滑块,查看它如何影响字体。在编程可变字体时,使用 FontVariation
类来修改字体的设计轴。FontVariation
类符合 OpenType 字体变量规范。
静态字体
Google Fonts 还包含静态字体。与可变字体一样,你需要了解字体设计,才能知道有哪些选项可用。同样,Google Fonts 网站可以提供帮助。
使用 Google Fonts 网站
使用字体的详细信息页面来了解有关其静态字体的更多信息。
- 要调查可变的 Google 字体,请访问 Google Fonts 网站。请注意,在每个字体卡片的右上角,它表示可变字体的可变,或x 样式,表示静态字体支持多少种样式。
- 确保仅显示可变字体未选中,并且搜索字段为空。
- 打开字体属性菜单。选中样式数复选框,并将滑块移动到 10+。
- 选择一种字体,例如Roboto,以打开其详细信息页面。
- Roboto 有 12 种样式,每种样式都在其详细信息页面上预览,以及该变体的名称。
- 实时移动像素滑块,以在不同像素大小下预览字体。
- 选择类型测试器选项卡,查看字体支持的样式。在本例中,有 3 种受支持的样式。
- 选择字形选项卡。这将显示字体支持的字形。
使用以下 API 以编程方式更改静态字体(但请记住,这仅在字体设计为支持该功能时才有效)
-
FontFeature
选择字形 -
FontWeight
修改粗细 -
FontStyle
斜体
FontFeature
对应于 OpenType 功能标记,可以将其视为启用或禁用给定字体功能的布尔标志。以下示例适用于 CSS,但说明了这个概念
其他资源
以下视频向你展示了 Flutter 排版的某些功能,并将其与 Material 和 Cupertino 外观和感觉(取决于应用程序运行的平台)、动画和自定义片段着色器结合在一起
使用 Flutter 制作精美的设计原型
要阅读一位工程师自定义可变字体并对其变形进行动画处理的体验(也是上述视频的基础),请查看 Playful typography with Flutter,这是一篇 Medium 上的免费文章。关联示例还使用了一个自定义着色器。