Flutter: используйте шрифт значков из другого пакета

Я разработал отдельный пакет пользовательского интерфейса для своего проекта.

Вот его упрощенная структура:

      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)) Я всегда получаю заполнитель вместо моего значка

Скажите, пожалуйста, можно ли использовать значки, расположенные вне корневого пакета?

и как мне это реализовать

1 ответ

Наконец-то я решил этот вопрос.

Для тех, кто столкнулся с той же проблемой, вот мое решение:

packages/ui-kit/app_icons.dart:

      ...

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

...

Это решение применимо ко всем типам ресурсов вне корневого пакета приложения.

Другие вопросы по тегам