theme_change.dart 955 B

12345678910111213141516171819202122232425262728293031323334
  1. import 'package:e2ee_chat/common/global.dart';
  2. import 'package:e2ee_chat/models/theme_model.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:provider/provider.dart';
  5. class ThemeChangeRoute extends StatelessWidget{
  6. @override
  7. Widget build(BuildContext context) {
  8. return Scaffold(
  9. appBar: AppBar(
  10. title: Text(GmLocalizations.of(context).theme),
  11. ),
  12. body: ListView( //显示主题色块
  13. children: Global.themes.map<Widget>((e) {
  14. return GestureDetector(
  15. child: Padding(
  16. padding: const EdgeInsets.symmetric(vertical: 5, horizontal: 16),
  17. child: Container(
  18. color: e,
  19. height: 40,
  20. ),
  21. ),
  22. onTap: () {
  23. //主题更新后,MaterialApp会重新build
  24. Provider.of<ThemeModel>(context).theme = e;
  25. },
  26. );
  27. }).toList(),
  28. ),
  29. );
  30. }
  31. }