main_controller.dart 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:flutter/services.dart';
  3. import 'package:get/get.dart';
  4. import 'package:injectable/injectable.dart';
  5. import '../../base/base_controller.dart';
  6. import '../../resource/assets.gen.dart';
  7. import '../../resource/string.gen.dart';
  8. import '../character/character_view.dart';
  9. import '../keyboard/keyboard_view.dart';
  10. import '../mine/mine_view.dart';
  11. @injectable
  12. class MainController extends BaseController {
  13. final _currentIndex = 0.obs;
  14. int get currentIndex => _currentIndex.value;
  15. final List<TabBean> tabBeans = [
  16. TabBean(
  17. StringName.mainTabKeyboard,
  18. Assets.images.iconTabKeyboardUnselect.path,
  19. Assets.anim.animTabKeyboardSelectedData,
  20. AnimatedSwitcher(
  21. duration: Duration(milliseconds: 300),
  22. transitionBuilder: (Widget child, Animation<double> animation) {
  23. return FadeTransition(
  24. opacity: animation,
  25. child: child,
  26. );
  27. },
  28. child: KeyBoardView(),
  29. ),
  30. ),
  31. TabBean(
  32. StringName.mainTabCharacter,
  33. Assets.images.iconTabCharacterUnselect.path,
  34. Assets.anim.animTabCharacterSelectedData,
  35. AnimatedSwitcher(
  36. duration: Duration(milliseconds: 300),
  37. transitionBuilder: (Widget child, Animation<double> animation) {
  38. return FadeTransition(
  39. opacity: animation,
  40. child: child,
  41. );
  42. },
  43. child: CharacterView(),
  44. ),
  45. ),
  46. TabBean(
  47. StringName.mainTabMine,
  48. Assets.images.iconTabMineUnselect.path,
  49. Assets.anim.animTabMineSelectedData,
  50. AnimatedSwitcher(
  51. duration: Duration(milliseconds: 300),
  52. transitionBuilder: (Widget child, Animation<double> animation) {
  53. return FadeTransition(
  54. opacity: animation,
  55. child: child,
  56. );
  57. },
  58. child: MineView(),
  59. ),
  60. ),
  61. ];
  62. void changeIndex(int index) {
  63. if (_currentIndex.value != index) {
  64. _currentIndex.value = index;
  65. }
  66. }
  67. @override
  68. void onInit() {
  69. super.onInit();
  70. }
  71. }
  72. class TabBean {
  73. final String title;
  74. final String normalIcon;
  75. final String selectedIcon;
  76. final Widget page;
  77. const TabBean(this.title, this.normalIcon, this.selectedIcon, this.page);
  78. }