diff --git a/lib/pages/rank/controller.dart b/lib/pages/rank/controller.dart index a75edb7e..0ee8c77c 100644 --- a/lib/pages/rank/controller.dart +++ b/lib/pages/rank/controller.dart @@ -11,8 +11,12 @@ class RankController extends GetxController RxInt tabIndex = 0.obs; late TabController tabController; - ZoneController get controller => Get.find( - tag: tabsConfig[tabController.index]['rid'].toString()); + ZoneController get controller { + final item = tabsConfig[tabController.index]; + return Get.find( + tag: '${item['rid']}${item['season_type']}'); + } + @override ScrollController get scrollController => controller.scrollController; diff --git a/lib/pages/rank/view.dart b/lib/pages/rank/view.dart index e4e1e047..fa278f2d 100644 --- a/lib/pages/rank/view.dart +++ b/lib/pages/rank/view.dart @@ -36,8 +36,12 @@ class _RankPageState extends State () => IntrinsicHeight( child: InkWell( onTap: () { - _rankController.tabIndex.value = index; - _rankController.tabController.animateTo(index); + if (_rankController.tabIndex.value != index) { + _rankController.tabIndex.value = index; + _rankController.tabController.animateTo(index); + } else { + _rankController.animateToTop(); + } }, child: ColoredBox( color: index == _rankController.tabIndex.value