我有一个由许多不同的 Dart 和 Flutter 包组成的应用程序。事实证明,这很有用,因为我能够将字体、颜色和小部件等内容移动到独立的样式指南包中,然后我们可以在所有其他应用程序中使用它。
在包中使用自定义字体在Flutter 中的工作方式略有不同,因为我们需要将assets
目录添加为子目录lib
而不是兄弟目录:
…然后pubspec.yaml
像这样注册这些资产:
assets:
- packages/receipt_widget/assets/fonts/my_font.ttf
// other asset declarations
这对于自定义字体和图标(png、jpg 等)完全可以正常工作。我的问题是相同的方法不适用于自定义图标字体。
脚步:
- 使用IcoMoon或Flutter Icon生成自定义图标字体
- 将生成的字体放入
assets/fonts
如上所示的目录中 - 将生成的dart文件放入
lib
文件夹 - 在代码中引用自定义图标并将其放入
Icon
小部件中,如下所示:
Icon(MyFontIcon.ic_heart);
flutter clean
为了安全起见,我在部署干净的构建之前从设备/模拟器运行并卸载该应用程序。然后我留下一个问号而不是引用的图标。
注意。当直接在 Flutter 应用程序中而不是在包中使用时,相同的图标可以正常工作。