|
|
@@ -3,13 +3,14 @@ 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:flutter/material.dart';
|
|
|
import 'package:get/get.dart';
|
|
|
import 'package:injectable/injectable.dart';
|
|
|
|
|
|
import '../friend/friend_view.dart';
|
|
|
|
|
|
@injectable
|
|
|
-class MainController extends BaseController {
|
|
|
+class MainController extends BaseController with GetSingleTickerProviderStateMixin {
|
|
|
List<TabData> tabData = [
|
|
|
TabData(Assets.images.iconMainTabLocationSelected.provider(),
|
|
|
Assets.images.iconMainTabLocationUnselect.provider(), LocationView()),
|
|
|
@@ -23,6 +24,9 @@ class MainController extends BaseController {
|
|
|
|
|
|
int get currentIndex => _currentIndex.value;
|
|
|
|
|
|
+ late TabController tabController = TabController(
|
|
|
+ length: tabData.length, vsync: this, initialIndex: _currentIndex.value);
|
|
|
+
|
|
|
@override
|
|
|
onReady() {
|
|
|
precacheTabIcon();
|
|
|
@@ -30,6 +34,7 @@ class MainController extends BaseController {
|
|
|
|
|
|
|
|
|
onTabClick(int index) {
|
|
|
+ tabController.animateTo(index);
|
|
|
_currentIndex.value = index;
|
|
|
}
|
|
|
|
|
|
@@ -39,6 +44,12 @@ class MainController extends BaseController {
|
|
|
precacheImage(tab.unSelectIcon, Get.context!);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @override
|
|
|
+ void onClose() {
|
|
|
+ super.onClose();
|
|
|
+ tabController.dispose();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
class TabData {
|