首页 > 解决方案 > 如何在 Flutter Web 中添加自定义字体?

问题描述

所以我现在正在开发flutter移动应用程序一段时间,我想探索flutter web,现在我尝试添加自定义字体但它没有显示自定义字体。

我已经添加了所有依赖项并为字体创建了一个单独的文件夹并添加到 pubspec.yaml 中,就像我在 Flutter Mobile 中所做的那样。

我的 main.dart


class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.red,
        title: Text("Dextroxd",
            style: TextStyle(
              fontSize: 36.0,
              fontFamily: 'CookieFam',
              color: Colors.white,
              fontWeight: FontWeight.w500
            )),
        centerTitle: true,
      ),
    );
  }
}

我的发布规范

description: An app built using Flutter for web

environment:
  # You must be using Flutter >=1.5.0 or Dart >=2.3.0
  sdk: '>=2.3.0 <3.0.0'


flutter:
  fonts:
    - family: CookieFam
      fonts:
       - asset: assets/Cookie-Regular.ttf



dependencies:
  flutter_web: any
  flutter_web_ui: any

dev_dependencies:
  build_runner: ^1.6.2
  build_web_compilers: ^2.1.0
  pedantic: ^1.7.0

dependency_overrides:
  flutter_web:
    git:
      url: https://github.com/flutter/flutter_web
      path: packages/flutter_web
  flutter_web_ui:
    git:
      url: https://github.com/flutter/flutter_web
      path: packages/flutter_web_ui

标签: fluttercustom-fontflutter-web

解决方案


在字体文件夹中添加字体并在 pubspec.yaml 中添加例如参考给定图像

字体文件夹:

在此处输入图像描述

发布规范.yaml

在此处输入图像描述

现在为 web 添加assets文件夹在 web 部分并在下面添加名为 web/assets/ 的 JSON 文件FontManifest.json

在此处输入图像描述

[
  {
    "family": "MuliBold",
    "fonts": [
      {
        "asset": "fonts/Muli-Bold.tff"
      }
    ]
  },
  {
    "family": "MuliExtraBold",
    "fonts": [
      {
        "asset": "fonts/Muli-ExtraBold.ttf"
      }
    ]
  },
{
    "family": "MuliRegular",
    "fonts": [
      {
        "asset": "fonts/Muli-Regular.ttf"
      }
    ]
  }
]

现在太好了,您的字体已应用于您的 Flutter Web 应用程序。


推荐阅读