我正在尝试构建一个支持自定义字体的 Flutter 应用程序。怪癖是,理想情况下,我只想将字体捆绑在移动应用程序中,而不是在 Web 上,而无需在构建时对代码进行重大更改。 有什么方法吗?
我将字体文件添加到资产和 pubspec 中,还使用了 google_fonts 包。
你可以这样做:
在项目目录中创建两个文件夹:fonts 和 fonts_web。
将字体文件添加到字体文件夹中。
更新您的 pubspec.yaml 文件以将字体文件包含在资产部分中:
yaml
flutter:
assets:
- fonts/
然后您需要安装 google_fonts 包,以便在您的应用程序中轻松顺畅地使用自定义字体:
yaml
dependencies:
google_fonts: ^2.1.0
然后 nn 你的代码,导入 google_fonts 包,并使用 GoogleFonts 小部件指定自定义字体:
导入'package:flutter/material.dart'; 导入“包:google_fonts/google_fonts.dart”;
飞镖
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'My App',
theme: ThemeData(
textTheme: GoogleFonts.openSansTextTheme(),
),
home: MyHomePage(),
);
}
}
对于仅包含移动应用程序的字体,您需要使用基于平台的条件导入。然后用下面显示的代码替换 pubspec.yaml 文件中的资产部分:
yaml
flutter:
assets:
- ${{false ? "ignore" : "fonts/"}}
- ${{true ? "fonts_web/" : "ignore/"}}
创建fonts_web文件夹,在里面添加一个空的ignore文件。它会阻止你的字体被包含在网络构建中。