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(),
      },
    );

  }
}

0 ответов

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