mode_selector.dart 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_2048/service/gameInit.dart';
  3. import 'package:flutter_redux/flutter_redux.dart';
  4. import '../store/game_state.dart';
  5. // 选择模式界面
  6. class ModeSelector extends StatelessWidget {
  7. @override
  8. Widget build(BuildContext context) {
  9. return StoreConnector<GameState, ModeSelectorProps>(
  10. converter: (store) {
  11. return ModeSelectorProps(
  12. mode: store.state.mode,
  13. onChange: (mode) => gameInit(store, mode),
  14. );
  15. },
  16. builder: (context, vm) {
  17. return Container(
  18. child: Row(
  19. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  20. children: <Widget>[
  21. FlatButton(
  22. color: Color(0xff8f7a66),
  23. textColor: Colors.white,
  24. onPressed: () => vm.onChange(3),
  25. child: Text('3 x 3'),
  26. ),
  27. FlatButton(
  28. color: Color(0xff8f7a66),
  29. textColor: Colors.white,
  30. onPressed: () => vm.onChange(4),
  31. child: Text('4 x 4'),
  32. ),
  33. FlatButton(
  34. color: Color(0xff8f7a66),
  35. textColor: Colors.white,
  36. onPressed: () => vm.onChange(6),
  37. child: Text('6 x 6'),
  38. ),
  39. ],
  40. ),
  41. );
  42. },
  43. );
  44. }
  45. }
  46. class ModeSelectorProps {
  47. ModeSelectorProps({this.mode, this.onChange});
  48. int mode;
  49. Function onChange;
  50. }