Flutter Применяется применение семейства шрифтов из Theme в файле Main.dart. Но то же самое при применении из пользовательского файла применяется только на панели приложения.
Я применяю тему в приложении flutter из внешнего файла темы
Детали шрифта добавляются в файл pubspec.yaml.
В сценарии 1 тема применяется из настраиваемого файла. Проблема в том, что шрифт применяется только в AppBar. Ни в каких других частях приложения.
В сценарии 2 тема напрямую применяется в файле main.dart. Шрифт применяется во всех виджетах. Других изменений нет.
Может ли кто-нибудь помочь в этом.
Сценарий 1
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: [
const Locale('en', ''),
const Locale('fr', ''),
],
title: 'Hello App',
theme: CustomTheme.theme,
// home: Login(),
routes: {
'/' : (ctx) => LoginScreen(),
},
);
}
}
Файл пользовательской темы
class CustomTheme {
static ThemeData get theme {
return ThemeData(
fontFamily: "Montserrat",
primarySwatch: CustomColors.primarySwatch,
accentColor: CustomColors.accentColor,
iconTheme: IconThemeData(
color: Colors.white
),
textTheme: ThemeData
.light()
.textTheme
.copyWith(
headline6: TextStyle(color: CustomColors.textPrimary)
),
);
}
}
Сценарий 2
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: [
const Locale('en', ''), // English, no country code
const Locale('fr', ''), // Spanish, no country code
],
title: 'Hello App',
theme: ThemeData(
fontFamily: "Montserrat"
),
// home: Login(),
routes: {
'/' : (ctx) => LoginScreen(),
},
);
}
}