Невозможно использовать шрифты 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. Это на самом деле безопаснее, так как шрифт будет встроен в ваше приложение и его можно безопасно использовать без Интернета. Единственным недостатком будет то, что это сделает ваше приложение больше.

Вот ссылка на текущий метод добавления пользовательских шрифтов:

https://docs.flutter.dev/cookbook/design/шрифты

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