import 'package:abroad_location/base/base_controller.dart'; import 'package:abroad_location/module/location/location_view.dart'; import 'package:abroad_location/module/urgent/urgent_view.dart'; import 'package:abroad_location/resource/assets.gen.dart'; import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; import 'package:injectable/injectable.dart'; import '../friend/friend_view.dart'; @injectable class MainController extends BaseController { List tabData = [ TabData(Assets.images.iconMainTabLocationSelected.provider(), Assets.images.iconMainTabLocationUnselect.provider(), LocationView()), TabData(Assets.images.iconMainTabFriendSelected.provider(), Assets.images.iconMainTabFriendUnselect.provider(), FriendView()), TabData(Assets.images.iconMainTabUrgentSelected.provider(), Assets.images.iconMianTabUrgentUnselect.provider(), UrgentView()), ]; final RxInt _currentIndex = 0.obs; int get currentIndex => _currentIndex.value; @override onReady() { precacheTabIcon(); } onTabClick(int index) { _currentIndex.value = index; } void precacheTabIcon() { for (var tab in tabData) { precacheImage(tab.selectIcon, Get.context!); precacheImage(tab.unSelectIcon, Get.context!); } } } class TabData { ImageProvider selectIcon; ImageProvider unSelectIcon; Widget page; TabData(this.selectIcon, this.unSelectIcon, this.page); }