我正在创建一个内部使用的图标库。以下是包结构:
company_icons_flutter
lib
icon_font
company_icons.ttf
widgets
company_icons.dart
company_icons_flutter.dart
example
pubspec.yaml
everything else from standard flutter create我使用包https://pub.dev/packages/icon_font_generator从svg图标文件夹生成字体和类文件。
company_icons_flutter.dart如下:
library company_icons_flutter;
export 'widgets/company_icons.dart';在示例项目中,我包含了一个网格视图,其中列出了包中的所有图标。示例项目的pubspec.yaml如下所示:
name: example
publish_to: "none"
environment:
sdk: ">=2.17.6 <3.0.0"
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
company_icons_flutter:
path: ../
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
fonts:
- family: CompanyIcons
fonts:
- asset: packages/company_icons_flutter/icon_font/company_icons.ttf这是很好的工作,我可以看到所有的图标出现在网格中。

我要摆脱的地方是尝试使用这个包从一个新的项目。为了方便这一点,我已经将包推到了GitHub上的一个私有回购程序中。新项目的pubspec.yaml如下:
name: new_project
publish_to: "none"
environment:
sdk: ">=2.17.6 <3.0.0"
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
company_icons_flutter:
git:
url: https://github.com/userName/company_icons_flutter.git
ref: main
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
fonts:
- family: CompanyIcons
fonts:
- asset: packages/company_icons_flutter/icon_font/company_icons.ttf该项目构建得很好,它肯定可以在包中看到company_icons.dart文件中的类,但网格视图显示的是矩形列表,而不是实际的图标符号。

有人能帮我找出我哪里出错了吗?
发布于 2022-08-18 21:23:13
好吧-我自己解决了问题。问题中的一切都是正确的。我忽略的是,在文件company_icons.dart中,我在用于扩展IconsData的类中遗漏了一个属性。以下是我以前的经历:
@immutable
class _CompanyIconsData extends IconData {
const _CompanyIconsData(int codePoint, this.name)
: super(codePoint,
fontFamily: 'CompanyIcons');
final String name;
}这就是这件事的原因:
@immutable
class _CompanyIconsData extends IconData {
const _CompanyIconsData(int codePoint, this.name)
: super(codePoint,
fontFamily: 'CompanyIcons', fontPackage: "company_icons_flutter");
final String name;
}fontPackage是关键的缺失论点!
https://stackoverflow.com/questions/73408335
复制相似问题