创建fonts文件夹
在项目文件下创建一个fonts文件夹:
下载字体
我是从 Google Fonts 下载的字体
导入字体
将下载的字体全部放到刚才新建的文件夹中:
声明字体
在 pubspec.yaml
中声明字体:
fonts:
- family: notoSancsSC
fonts:
- asset: fonts/NotoSansSC-Black.otf
- asset: fonts/NotoSansSC-Bold.otf
- asset: fonts/NotoSansSC-Light.otf
- asset: fonts/NotoSansSC-Medium.otf
- asset: fonts/NotoSansSC-Regular.otf
- asset: fonts/NotoSansSC-Thin.otf
style: italic
family
属性决定了字体的名称,你将会在 TextStyle 的 fontFamily 属性中用到。
asset
是字体文件对于 pubspec.yaml
文件的相对路径。这些文件包含了字体中字形的轮廓。构建应用时,这些文件将会被包含在应用程序的资源包中。
单个字体可以引用多个不同轮廓字重及风格的文件:
-
weight
属性指定了文件中字体轮廓的字重为 100 的整数倍,并且范围在 100 和 900 之间。这些值对应 FontWeight 并能够在 TextStyle 对象的 fontWeight 属性上使用。例如,如果你想使用上面定义的RobotoMono-Bold
字体,你可以在TextStyle
中将fontWeight
设置为FontWeight.w700
。需要注意的是,定义
weight
属性不会覆盖字体的实际粗细。你无法使用FontWeight.w100
访问RobotoMono-Bold
,即使其weight
设置为了 100。 -
style
属性指定文件中字体的轮廓是否为italic
或normal
。这些值对应 FontStyle 并能够在 TextStyle 对象的 fontStyle 属性上使用。例如,如果你想使用上面定义的Raleway-Italic
字体,你可以在TextStyle
中将fontStyle
设置为FontStyle.italic
。需要注意的是,定义
style
属性不会更改字体的实际样式;你无法使用FontStyle.normal
访问Raleway-Italic,即使其
style` 设置为了 normal。
使用实例
Text(taskInfo[index].content!,style: TextStyle(fontFamily: "notoSancsSC",),)
设置默认字体
如果想要设为默认字体,请将 fontFamily
设为应用(全局)theme
的属性的一部分。提供的 fontFamily
的值必须与 pubspec.yaml
中声明的名称相匹配。
return MaterialApp(
title: 'Custom Fonts',
// Set Raleway as the default app font.
theme: ThemeData(fontFamily: 'Raleway'),
home: const MyHomePage(),
);