Здесь я добавил функциональность theme
в flutter app
. Я объясню это вкратце, я создал один класс с именем AppStyleModeNotifier
. В этом классе я установил два метода для light
и dark
theme
. Я поместил этот класс.
import 'package:flutter/material.dart';
class AppStyleModeNotifier extends ChangeNotifier {
int mode = 0; //0 for light and 1 for dark
Color backgroungColor = Colors.grey[100];
Color cardBackgroundColor = Colors.white;
Color headlineColor = Colors.black;
Color descriptionColor = Colors.grey[800];
Color contentColor = Colors.grey[800];
Color dateColor = Colors.grey[800];
Color appbarIconColor = Colors.black;
Color appbarBackgroundColor = Colors.white;
Color actionButtonColor = Colors.black;
Color appbarTextColor = Colors.black;
switchMode() {
if (mode == 0) {
//if it is light mode currently switch to dark
backgroungColor = Color(0xfff2f2f2);
cardBackgroundColor = Colors.white;
headlineColor = Colors.black;
descriptionColor = Colors.grey[800];
contentColor = Colors.grey[800];
dateColor = Colors.grey[800];
appbarIconColor = Colors.black;
appbarBackgroundColor = Colors.white;
actionButtonColor = Colors.black;
appbarTextColor = Colors.black;
mode = 1;
} else {
//if it is dark mode currently switch to light
backgroungColor = Colors.black;
cardBackgroundColor = Color(0xff2b2a2a);
headlineColor = Colors.white;
descriptionColor = Colors.white60;
contentColor = Colors.white60;
dateColor = Colors.white60;
appbarIconColor = Colors.white;
appbarBackgroundColor = Colors.black;
actionButtonColor = Colors.white;
appbarTextColor = Colors.white;
mode = 0;
}
notifyListeners();
}
}
Теперь я использую этот класс в своем приложении для светлой и темной темы как
final appStyleMode = Provider.of<AppStyleModeNotifier>(context);
Я использую этот метод для изменения темы, когда пользователь нажимает кнопку.
IconButton(
icon: Icon(Icons.brightness_6),
onPressed: () {
appStyleMode.switchMode();
}
)
Но теперь проблема, с которой я столкнулся, заключается в том, что когда я перезапускаю свое приложение, она устанавливается как светлая тема по умолчанию в моем применение. Итак, я хочу установить тему, которую пользователь устанавливает, когда пользователь закрывает приложение. Это означает, что если пользователь установил светлую тему, тогда, когда пользователь повторно откроет приложение, оно будет установлено как светлая тема, а пользователь установит темную тему, тогда она будет установлена как темная тема. Как реализовать эту функцию sh?