main_controller.dart 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import 'package:abroad_location/base/base_controller.dart';
  2. import 'package:abroad_location/module/location/location_view.dart';
  3. import 'package:abroad_location/module/urgent/urgent_view.dart';
  4. import 'package:abroad_location/resource/assets.gen.dart';
  5. import 'package:flutter/cupertino.dart';
  6. import 'package:get/get.dart';
  7. import 'package:injectable/injectable.dart';
  8. import '../friend/friend_view.dart';
  9. @injectable
  10. class MainController extends BaseController {
  11. List<TabData> tabData = [
  12. TabData(Assets.images.iconMainTabLocationSelected.provider(),
  13. Assets.images.iconMainTabLocationUnselect.provider(), LocationView()),
  14. TabData(Assets.images.iconMainTabFriendSelected.provider(),
  15. Assets.images.iconMainTabFriendUnselect.provider(), FriendView()),
  16. TabData(Assets.images.iconMainTabUrgentSelected.provider(),
  17. Assets.images.iconMianTabUrgentUnselect.provider(), UrgentView()),
  18. ];
  19. final RxInt _currentIndex = 0.obs;
  20. int get currentIndex => _currentIndex.value;
  21. @override
  22. onReady() {
  23. precacheTabIcon();
  24. }
  25. onTabClick(int index) {
  26. _currentIndex.value = index;
  27. }
  28. void precacheTabIcon() {
  29. for (var tab in tabData) {
  30. precacheImage(tab.selectIcon, Get.context!);
  31. precacheImage(tab.unSelectIcon, Get.context!);
  32. }
  33. }
  34. }
  35. class TabData {
  36. ImageProvider selectIcon;
  37. ImageProvider unSelectIcon;
  38. Widget page;
  39. TabData(this.selectIcon, this.unSelectIcon, this.page);
  40. }