gpt4 book ai didi

flutter - 在 Flutter 包中使用自定义图标字体显示问号而不是自定义图标

转载 作者:行者123 更新时间:2023-12-05 02:39:35 63 4
gpt4 key购买 nike

我有一个由许多不同的 Dart 和 Flutter 包组成的应用程序。事实证明这很有用,因为我已经能够将字体、颜色和小部件等内容移动到一个独立的样式指南包中,然后我们可以在所有其他应用程序中使用它。

在包中使用自定义字体 works slightly differently in Flutter因为我们需要将 assets 目录添加为 lib 的子目录而不是兄弟目录:

Adding assets to a package

...然后在 pubspec.yaml 中注册这些 Assets ,如下所示:

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 应用程序中而不是在包中使用时,完全相同的图标可以正常工作。

最佳答案

要使用自定义包中的 Flutter Icon 字体,您可以按照以下步骤操作:(我已经为其他会发现此问题的人重复了您的一些步骤)

创建一个flutter图标字体

你可以为那个 https://www.fluttericon.com 使用 flutter 图标

将文件放入包中

确保将 .ttf 文件复制到 /lib 文件夹中。不仅仅是 Assets ,就像您在根项目中所做的那样。

示例路径:

/packages/my_awesome_fontpackage/lib/assets/MyIconFont.ttf

(参见 https://zubairehman.medium.com/how-to-use-custom-fonts-images-in-flutter-package-c2d9d4bfd47a)

将字体添加到您的项目

现在打开您的包的 pubspec.yaml 文件并将字体添加为 Assets 包路径:

flutter:
fonts:
- family: MyIconFont
fonts:
- asset: packages/my_awesome_fontpackage/assets/MyIconFont.ttf

(您可能需要重新启动您的应用程序并完全捆绑才能正确加载字体,并且可能需要运行 flutter clean 以确保安全)

现在将包声明添加到字体 dart 文件

进入 my_icon_font.dart 文件并将常量 _kFontPkg 更改为您的包名称。


class MyIconFont {
MyIconFont._();

static const _kFontFam = 'MyIconFont';
static const String? _kFontPkg = 'my_awesome_fontpackage';

static const IconData bell = ...
....
}

关于flutter - 在 Flutter 包中使用自定义图标字体显示问号而不是自定义图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69027639/

63 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com