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.

40 lines
973 B

import 'package:get/get.dart';
import 'package:flutter/material.dart';
import 'package:get_storage/get_storage.dart';
class AppController extends GetxController {
static AppController get to => Get.find();
final _isDarkMode = false.obs;
final _currentIndex = 0.obs;
final _storage = GetStorage();
bool get isDarkMode => _isDarkMode.value;
int get currentIndex => _currentIndex.value;
@override
void onInit() {
super.onInit();
_loadThemeMode();
}
void _loadThemeMode() {
_isDarkMode.value = _storage.read('isDarkMode') ?? false;
}
Future<void> toggleThemeMode() async {
_isDarkMode.value = !_isDarkMode.value;
Get.changeThemeMode(_isDarkMode.value ? ThemeMode.dark : ThemeMode.light);
await _storage.write('isDarkMode', _isDarkMode.value);
}
void changeIndex(int index) {
_currentIndex.value = index;
}
@override
void onClose() {
// 在这里清理全局资源
super.onClose();
}
}