Пользовательский шрифт не отображается золотым изображениям, когда предоставляется пакет - PullRequest
0 голосов
/ 10 марта 2020

У меня есть собственный шрифт, определенный в модуле theme. Этот модуль является зависимостью в модуле widgets.

Виджет в модуле виджетов применяет пользовательский шрифт, как показано ниже

style: TextStyle(
  fontSize: fontSize,
  fontFamily: "IconActions",
  package: "theme"
)

Он отлично работает.

К сожалению, этот пользовательский шрифт не отображается на золотых изображениях. Я должен удалить package: "theme", чтобы это исправить. Но это ломает приложение, и шрифт больше не отображается. Таким образом, в принципе у меня может быть шрифт, корректно работающий в рабочем коде или тестовом коде, но никогда не в обоих.

Пользовательский шрифт загружается в setUp метод теста

final fontData = File('assets/fonts/IconActions.ttf')
  .readAsBytes()
  .then((bytes) => ByteData.view(Uint8List.fromList(bytes).buffer));
final fontLoader = FontLoader('IconActions')..addFont(fontData);
await fontLoader.load();

Я что-то упустил или это ошибка?

1 Ответ

0 голосов
/ 31 марта 2020

Таким образом, в основном решение состоит в том, чтобы удалить package: "theme" из TextStyle, чтобы он заработал. Но это половина решения, потому что, как я уже упоминал в этом вопросе, теперь у «золотых» файлов правильно отображается средство отображения шрифтов, но шрифт не работает в приложении.

Чтобы заставить его работать в приложении, нам нужно заданная структура проекта:

pubspe c .yaml (модуль theme)

flutter:
  fonts:
   - family 'ComicSans'
     fonts:
     - asset: packages/theme/fonts/ComicSans.ttf

widget.dart (модуль theme)

style: TextStyle(
  fontSize: fontSize,
  fontFamily: "ComicSans",
)

Сейчас в модуле widgets, который является модулем, который содержит main.dart с его функцией main, которую вы запускаете, вы должны снова определить шрифт:

pubspe c .yaml (модуль widgets )

dependencies:
  flutter:
    sdk: flutter
  theme:
    path: ../path/to/theme/module

flutter:
  fonts:
   - family 'ComicSans'
     fonts:
     - asset: packages/theme/fonts/ComicSans.ttf

Теперь шрифт правильно отображается как в приложении, так и на золотых изображениях.

...