Skip to content

Instantly share code, notes, and snippets.

@tiagolpadua
Created August 6, 2020 15:57
Show Gist options
  • Save tiagolpadua/cbc5283fe69ac2ef4e1dcd94909c738e to your computer and use it in GitHub Desktop.
Save tiagolpadua/cbc5283fe69ac2ef4e1dcd94909c738e to your computer and use it in GitHub Desktop.
Dynamic Theme Changing Challange
import 'package:bytebank/screens/transfer/list.dart';
import 'package:flutter/material.dart';
import 'package:scoped_model/scoped_model.dart';
void main() => runApp(BytebankApp());
class BytebankApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new ScopedModel<DarkModeModel>(
model: new DarkModeModel(),
child: new ScopedModelDescendant<DarkModeModel>(
builder: (context, child, model) => MaterialApp(
theme: model.darkmode ? ThemeData.dark() : defaultTheme(),
home: Scaffold(
body: TransfersList(),
),
),
),
);
}
}
class DarkModeModel extends Model {
bool darkmode = false;
void toggle() {
darkmode = !darkmode;
debugPrint('Dark mode is now $darkmode');
notifyListeners();
}
}
ThemeData defaultTheme() {
return ThemeData(
primaryColor: Colors.green[900],
accentColor: Colors.blueAccent[700],
buttonTheme: ButtonThemeData(
buttonColor: Colors.blueAccent[700],
textTheme: ButtonTextTheme.primary,
),
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment