You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
760 B

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
class ThemeService {
final _box = GetStorage();
final _key = 'isDarkMode';
/// 获取主题模式 - 如果没有保存过,则默认为系统主题
ThemeMode getThemeMode() {
return isSavedDarkMode() ? ThemeMode.dark : ThemeMode.light;
}
/// 是否是暗黑模式
bool isSavedDarkMode() {
return _box.read(_key) ?? false;
}
/// 保存主题模式到本地存储
void saveThemeMode(bool isDarkMode) {
_box.write(_key, isDarkMode);
}
/// 切换主题
void changeThemeMode() {
Get.changeThemeMode(isSavedDarkMode() ? ThemeMode.light : ThemeMode.dark);
saveThemeMode(!isSavedDarkMode());
}
}