v2.0.4theme_manager
Um gerenciador de temas para temas claros, escuros e do sistema. Altere o tema dinamicamente e o tema selecionado será persistido.
Um gerenciador de temas para o Flutter que suporta temas claros, escuros e do sistema.
{"sdk":"flutter"}^2.2.2^3.1.4^2.0.5{"sdk":"flutter"}^3.0.1Texto original em inglês. Visite o GitHub para a versão atual.
https://github.com/matthewrice345/theme_manager/blob/master/assets/screen.gif
A theme manager that supports light, dark, and system default themes. State is retained and applied upon application start. Heavily inspired by dynamic_theme by Norbert Kozsir.
Add theme_manager to your project.
dependencies:
theme_manager: ^2.0.4
run flutter packages get and import theme_manager
import 'package:theme_manager/theme_manager.dart';
A dialog is provided that can switch between themes.
import 'package:theme_manager/theme_picker_dialog.dart';
Make sure WidgetsFlutterBinding are initialized. This is required.
void main() {
WidgetsFlutterBinding.ensureInitialized(); // Required
runApp(MyApp());
}
Wrap your MaterialApp with ThemeManager:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ThemeManager(
defaultBrightnessPreference: BrightnessPreference.system,
data: (Brightness brightness) => ThemeData(
primarySwatch: Colors.blue,
accentColor: Colors.lightBlue,
brightness: brightness,
),
loadBrightnessOnStart: true,
themedWidgetBuilder: (BuildContext context, ThemeData theme) {
return MaterialApp(
title: 'Theme Manager Demo',
theme: theme,
home: MyHomePage(),
);
},
);
}
}
When you want to change your theme:
void setAsSystemDefault() =>
ThemeManager.of(context).setBrightnessPreference(BrightnessPreference.system);
void setAsLight() =>
ThemeManager.of(context).setBrightnessPreference(BrightnessPreference.light);
void setAsDark() =>
ThemeManager.of(context).setBrightnessPreference(BrightnessPreference.dark);
The system default will load either light or dark based on the device preferences. If your device changes themes at sunset or sunrise then light/dark mode will apply automatically.
The BrightnessPreference is saved in SharedPreferences automatically. There is also a clear
function to remove the preferences.
void clear() => ThemeManager.of(context).clearBrightnessPreference();
https://github.com/matthewrice345/theme_manager/blob/master/assets/dialog.png
For help getting started with Flutter, view our online documentation.
For help on editing package code, view the documentation.