Flutter:使用另一个包中的图标字体

问题描述 投票:0回答:1

我为我的项目开发了单独的 UI 包。

这是它的简化结构:

project:
│
...
│
├── lib:
│   │
│   └── classes using AppIcons.ttf:
│
└── packages:
    │
    └── ui-kit:
        │
        ├── lib:
        │   │
        │   └── classes using AppIcons.ttf:
        │
        └── assets:
            │
            └── icons:
                │
                └── AppIcons.ttf:

packages/ui-kit/pubspec.yaml

flutter:
  fonts:
    - family: AppIcons.ttf
      fonts:
        - asset: assets/icons/AppIcons.ttf

packages/ui-kit/app_icons.dart

abstract class AppIcons {
  
  static const _kFontFam = 'AppIcons';

  static const IconData ic_add = IconData(0xe800, fontFamily: _kFontFam);
  
   ...

}

问题是 - 我如何在
AppIcons.ic_add
 中使用 
lib/

所以当我尝试放置图标(

Icon(AppIcons.ic_add)
)时,我总是得到占位符而不是我的图标

请告诉我是否可以使用根包外部的图标

我该如何实现它

flutter flutter-plugin flutter-packages flutter-pub flutter-font
1个回答
2
投票

终于解决了这个问题。对于那些遇到同样问题的人,这是我的解决方案:

packages/ui-kit/app_icons.dart

...

flutter:
  fonts:
    - family: AppIcons.ttf
      fonts:
        - asset: packages/ui-kit/assets/icons/AppIcons.ttf

...

此解决方案适用于根应用程序包之外的所有类型的资产。

© www.soinside.com 2019 - 2024. All rights reserved.