Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-02-06 12:25:09 +08:00
parent 42e082bbc6
commit 40269da391
3 changed files with 17 additions and 7 deletions

View File

@@ -2,6 +2,7 @@ import 'dart:async';
import 'package:PiliPlus/models/common/rank_type.dart';
import 'package:PiliPlus/pages/common/common_controller.dart';
import 'package:PiliPlus/pages/main/controller.dart';
import 'package:PiliPlus/pages/rank/zone/controller.dart';
import 'package:flutter/foundation.dart' show clampDouble;
import 'package:flutter/material.dart';
@@ -20,12 +21,17 @@ class RankController extends GetxController
@override
ScrollController get scrollController => controller.scrollController;
final _mainCtr = Get.find<MainController>();
final tabScrollController = ScrollController();
void scrollToCurrentIndex(double tabHeight, int index) {
final position = tabScrollController.position;
final offset = clampDouble(
(tabHeight * (2 * index + 1) - position.viewportDimension) / 2.0 + 80.0,
(tabHeight * (2 * index + 1) - position.viewportDimension) / 2.0 +
(_mainCtr.useBottomNav && (_mainCtr.showBottomBar?.value ?? false)
? 80.0
: 0.0),
position.minScrollExtent,
position.maxScrollExtent,
);

View File

@@ -58,6 +58,10 @@ class SearchPanelController<R extends SearchNumData<T>, T>
StreamSubscription? _listener;
void cancelListener() {
_listener?.cancel();
}
@override
void onInit() {
super.onInit();
@@ -113,10 +117,4 @@ class SearchPanelController<R extends SearchNumData<T>, T>
scrollController.jumpToTop();
return super.onReload();
}
@override
void onClose() {
_listener?.cancel();
super.onClose();
}
}

View File

@@ -32,6 +32,12 @@ abstract class CommonSearchPanelState<
@override
bool get wantKeepAlive => true;
@override
void dispose() {
controller.cancelListener();
super.dispose();
}
@override
Widget build(BuildContext context) {
super.build(context);