【发布时间】:2021-07-06 08:24:11
【问题描述】:
我正在为我的应用程序设置深色模式和浅色模式,但数据持久性存在问题,因为当我重新启动应用程序时,我的主题会回到默认主题,而不是我上次留下的主题在应用程序中,经过一些研究,我被提议使用 shared_preferences 插件,但我不知道如何在我的情况下使用它,因为我将主题从黑暗更改为明亮的方式是通过更改变量 ThemeMode toggleDarkTheme() 和 toggleLightTheme() 方法中的 themeMode 初始值如下面的代码所示,那么如何使用shared_preferences?
我的 theme_provider.dart 文件:
// Flutter imports:
import 'package:flutter/material.dart';
// Package imports:
import 'package:flutter_riverpod/flutter_riverpod.dart';
final themeProvider = ChangeNotifierProvider<ThemeProvider>((ref) {
return ThemeProvider();
});
class ThemeProvider with ChangeNotifier {
ThemeMode themeMode = ThemeMode.system;
void toggleDarkTheme() {
themeMode = ThemeMode.dark;
notifyListeners();
}
void toggleLightTheme() {
themeMode = ThemeMode.light;
notifyListeners();
}
}
mixin MyThemes {
static final darkTheme = ThemeData.dark().copyWith(
...
);
static final lightTheme = ThemeData.light().copyWith(
...
);
}
main.dart:
final themeStatus = watch(themeProvider);
return MaterialApp(
themeMode: themeStatus.themeMode,
darkTheme: MyThemes.darkTheme,
theme: MyThemes.lightTheme,
【问题讨论】:
标签: flutter dart sharedpreferences