I’m facing an issue in my Flutter app where the Google font is not applying correctly to the light theme when I switch dynamically between light and dark themes. The font works perfectly with the dark theme, but in the light theme, it reverts to Flutter’s default font.
main.dart
void main() async {
await dotenv.load(fileName: '.env');
Get.put(AuthController());
Get.put(NavigationController());
Get.put(ThemeProvider());
runApp(const App());
}
class App extends StatelessWidget {
const App({super.key});
@override
Widget build(BuildContext context) {
return Obx(
() {
final themeProvider = Get.find<ThemeProvider>();
return GetMaterialApp(
home: const AuthWrapper(),
debugShowCheckedModeBanner: false,
title: 'Ela & Elas',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(
seedColor: const Color.fromARGB(255, 255, 160, 247)),
textTheme:
GoogleFonts.montserratTextTheme(ThemeData.light().textTheme)),
darkTheme: ThemeData.dark().copyWith(
colorScheme: ColorScheme.fromSeed(
seedColor: const Color.fromARGB(255, 255, 160, 247)),
textTheme:
GoogleFonts.montserratTextTheme(ThemeData.dark().textTheme),
),
themeMode: themeProvider.isDarkTheme.value
? ThemeMode.dark
: ThemeMode.light,
getPages: AppRoutes.routes,
);
},
);
}
}
theme.dart
class ThemeProvider extends GetxController {
var isDarkTheme = false.obs;
@override
void onInit() {
super.onInit();
_loadThemePreference();
}
void changeTheme() async {
isDarkTheme.value = !isDarkTheme.value;
Get.changeTheme(isDarkTheme.value ? ThemeData.dark() : ThemeData.light());
await _saveThemePreference(isDarkTheme.value);
update();
}
Future<void> _saveThemePreference(bool isDarkTheme) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setBool('isDarkTheme', isDarkTheme);
}
Future<void> _loadThemePreference() async {
final prefs = await SharedPreferences.getInstance();
isDarkTheme.value = prefs.getBool('isDarkTheme') ?? false;
Get.changeTheme(isDarkTheme.value ? ThemeData.dark() : ThemeData.light());
}
}
Any insights on what might be going wrong or how to fix this would be greatly appreciated!