Как универсально изменить семейство шрифтов панели приложений во флаттере?

Я хочу изменить шрифт панели приложения в своем приложении универсально, но я не нашел подходящего ответа, который искал.
Есть ли способ применить тему глобально с помощью ThemeData и темы в MaterialApp? < br>
Я не хочу применять свойство TextStyle, как показано ниже.

appBar: AppBar(
            title: Text('Title ',style: TextStyle(fontFamily: 'YOUR_FONT_FAMILY'),
            ),
          ),

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

P.S. Это мой первый пост на StackOverflow.


person DhrumilShah98    schedule 28.12.2020    source источник


Ответы (1)


Вы должны использовать AppBarTheme. Найдите приведенный ниже код.

В MaterialApp используйте это так:

MaterialApp(
      title: 'Test App',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        appBarTheme: AppBarTheme(
          textTheme: ThemeData.light()
              .textTheme
              .copyWith(
                headline6: TextStyle( // instead of title use can use display as well
                  fontFamily: 'Lobster',
                ),
              )
              .apply(
                fontFamily: 'Lobster',
              ),
        ),
      ),
    );
AppBar(
      title: Text('App bar', 
                 style: Theme.of(context).appBarTheme.textTheme. headline6,
             ),
    );
person Balaji Venkatraman    schedule 28.12.2020
comment
Это не работает. Также вместо создания нового AppBarTheme () мы не можем просто использовать Theme.of (context) .appBarTheme.copywith ({})? - person DhrumilShah98; 28.12.2020
comment
Это также возможно. Это должно работать. Также, какое семейство шрифтов вы используете и настроили ли вы его в файле pubspec.yaml - person Balaji Venkatraman; 28.12.2020
comment
Да, он настроен в файле pubspec.yaml, а семейство шрифтов - «Lobster». Я могу это изменить, но я хочу изменить это повсеместно. - person DhrumilShah98; 28.12.2020
comment
Понятно. Пожалуйста, проверьте обновленный код, который я только что добавил в MaterialApp. Надеюсь, что это сработает. - person Balaji Venkatraman; 28.12.2020
comment
Я обнаружил, что заголовок 6 используется для основного текста на панелях приложений и в диалоговых окнах. Источник: api.flutter.dev/flutter/material/TextTheme/headline6.html Итак, я настроил его так, и он работал: `` appBarTheme: Theme.of (context) .appBarTheme.copyWith (textTheme: Theme.of (context) .textTheme.copyWith (headline6: TextStyle (fontSize: 24, fontFamily) : 'Lobster',),),), `` Мне не нужно было использовать light () или dark (). Это может быть правильно. - person DhrumilShah98; 28.12.2020
comment
Круто, но это не будет применяться глобально. Вы должны использовать его, как и код, который я опубликовал. - person Balaji Venkatraman; 28.12.2020