I am trying to save the theme of my app using bool variable in get storage. but whenever I restart or open the app after closing the app, the variable get null.
void changeTheme() {
final box = GetStorage();
box.writeIfNull('isDark', false);
bool isDark = box.read('isDark');
isDark
? Get.changeTheme(QRCodeTheme.lightThemeData)
: Get.changeTheme(QRCodeTheme.darkThemeData);
box.write('isDark', !isDark);
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
Prefs.init();
runApp(QRCodeScannerApp());
}
class QRCodeScannerApp extends StatefulWidget {
QRCodeScannerApp({Key? key}) : super(key: key);
@override
State<QRCodeScannerApp> createState() => _QRCodeScannerAppState();
}
class _QRCodeScannerAppState extends State<QRCodeScannerApp> {
bool darkMode = false;
@override
void initState() {
final box = GetStorage();
box.writeIfNull('isDark', false);
darkMode = box.read('isDark');
super.initState();
}
@override
Widget build(BuildContext context) {
return GetMaterialApp(
debugShowCheckedModeBanner: false,
theme:
darkMode ? QRCodeTheme.darkThemeData : QRCodeTheme.lightThemeData,
initialRoute: AppRoutes.home,
getPages: [
GetPage(
name: AppRoutes.home,
page: () => HomePage(),
),
],
);
}
}
What am I missing? Thanks in advance!
In your void main
please enter below code
await GetStorage.init();
You should add await
keyword
P.S :- In your case you use to write await Prefs.init()