mode_selector.dart 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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: [
  21. TextButton(
  22. onPressed: () => vm.onChange(3),
  23. child: Text('3 x 3'),
  24. ),
  25. TextButton(
  26. onPressed: () => vm.onChange(4),
  27. child: Text('4 x 4'),
  28. ),
  29. TextButton(
  30. onPressed: () => vm.onChange(6),
  31. child: Text('6 x 6'),
  32. ),
  33. ],
  34. ),
  35. );
  36. },
  37. );
  38. }
  39. }
  40. class ModeSelectorProps {
  41. ModeSelectorProps({required this.mode, required this.onChange});
  42. int mode;
  43. Function onChange;
  44. }