Невозможно использовать шрифты Google во Flutter sliverappbar
Я использую Google Fonts в своем приложении. Я успешно сделал это в своем приложении, но по какой-то причине я не могу использовать его в SliverAppBar. Я получаю следующую ошибку:
The constructor being called isn't a const constructor.
Мой код, для которого я пытаюсь изменить шрифт:
SliverAppBar(
pinned: true,
snap: false,
floating: false,
expandedHeight: 200.0,
leading: new IconButton(
color: Colors.black38,
icon: new Icon(Icons.arrow_back),
onPressed: () {
Navigator.pushReplacementNamed(
context,
'/');
},
),
backgroundColor: Globals().appBar,
flexibleSpace: const FlexibleSpaceBar(
title:
Text('Inventory', style: GoogleFonts.acme(color: Globals().white_text,fontSize: 20),) ,
// Text('Inventory'),
background: FittedBox(fit:BoxFit.cover,child: Image(image:AssetImage('images/bag.jpg'))),
),
),
Если я простое текстовое поле, которое вы видите в коде
// Text('Inventory'),
тогда у меня нет проблемы. как вы используете Google Fonts в SliverAppbar?
1 ответ
Итак, я думаю, что класс пакета google_fonts не реализует конструктор const, потому что по умолчанию он будет выполнять интернет-запрос HTTP для шрифта. Это означает, что шрифт загружается во время выполнения, а значит, он не может быть константой. Даже если вы отключите эту функцию с помощью «GoogleFonts.config.allowRuntimeFetching = false;», я не думаю, что автор пакета намеревается использовать ее таким образом; следовательно, нет конструктора const.
Единственный обходной путь для этого — просто использовать обычный метод добавления пользовательских шрифтов без пакета google_fonts. Это на самом деле безопаснее, так как шрифт будет встроен в ваше приложение и его можно безопасно использовать без Интернета. Единственным недостатком будет то, что это сделает ваше приложение больше.
Вот ссылка на текущий метод добавления пользовательских шрифтов: