Reputation: 315
I have a simple Switch in my Drawer:
SwitchListTile(
title: Text("Dark Theme"),
value: darkThemeEnabled,
onChanged: (darkThemeEnabled) {
if (darkThemeEnabled) {
_themeChanger.setTheme(ThemeData.dark());
} else {
_themeChanger.setTheme(AppTheme.light);
}
)
When I enable my Switch it changes to my dark theme, but how can I change it back? How can I run something on disabling? I know it must be pretty simple, but I'm currently stuck.
Upvotes: 1
Views: 280
Reputation: 1876
SwitchListTile widget itself doesn't manage state. You can create a StatefulWidget and call setState to update the UI.
class OnOff extends StatefulWidget {
@override
_OnOffState createState() => _OnOffState();
}
class _OnOffState extends State<OnOff> {
bool flag = false;
@override
Widget build(BuildContext context) {
return SwitchListTile(
title: const Text('Change Me'),
value: flag,
onChanged: (bool value) {
setState(() {
flag = value;
});
},
);
}
}
Upvotes: 2
Reputation: 2108
SwitchListTile(
title: Text("Dark Theme"),
value: darkThemeEnabled,
onChanged: (){
if(darkThemeEnabled)
doSometing();
}
)
Upvotes: 0