You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Fonts Flutter包是否会下载字体到设备?能否打包进应用?

Google Fonts 包首次启动字体闪跳问题解答

1. 字体是否为首次启动时动态下载

是,google_fonts 包默认开启运行时动态拉取逻辑:只要你用到的字体没有提前预装在用户设备上,应用首次启动时会自动从Google字体服务端下载对应字体资源,下载完成后才会替换系统默认字体,这就是你看到字体切换延迟的核心原因。

2. 字体打包进应用的实现方案

完全可以将字体资源和应用一同编译打包,完全规避用户侧动态下载,操作步骤如下:

  • 第一步:将你用到的所有字体文件(包含所需的全部字重、样式变体)下载到本地,在项目根目录新建fonts文件夹,将所有字体文件存入该目录
  • 第二步:修改pubspec.yaml配置,声明字体文件夹为项目资源:
flutter:
  assets:
    - fonts/
  • 第三步:在应用启动前预加载所需字体,同时可关闭运行时下载开关避免异常触发下载:
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // 关闭运行时动态下载能力,避免遗漏打包的字体触发下载
  GoogleFonts.config.allowRuntimeFetching = false;
  // 预加载所有用到的字体,示例为用到Noto Sans SC字体的情况
  await GoogleFonts.notoSansSc();
  runApp(const MyApp());
}

配置完成后重新编译打包应用,所有字体都会内置到安装包中,首次启动不会再出现字体切换延迟的问题。

内容的提问来源于stack exchange,提问作者Isaac Hojo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 21:15:03