From 40269da3911fac4b8f3a4ef210c562a39deeafce Mon Sep 17 00:00:00 2001 From: dom Date: Fri, 6 Feb 2026 12:25:09 +0800 Subject: [PATCH] tweaks Signed-off-by: dom --- lib/pages/rank/controller.dart | 8 +++++++- lib/pages/search_panel/controller.dart | 10 ++++------ lib/pages/search_panel/view.dart | 6 ++++++ 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/lib/pages/rank/controller.dart b/lib/pages/rank/controller.dart index 907f35638..ebdf97b1f 100644 --- a/lib/pages/rank/controller.dart +++ b/lib/pages/rank/controller.dart @@ -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(); + 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, ); diff --git a/lib/pages/search_panel/controller.dart b/lib/pages/search_panel/controller.dart index 7155cab13..9ef5c8065 100644 --- a/lib/pages/search_panel/controller.dart +++ b/lib/pages/search_panel/controller.dart @@ -58,6 +58,10 @@ class SearchPanelController, T> StreamSubscription? _listener; + void cancelListener() { + _listener?.cancel(); + } + @override void onInit() { super.onInit(); @@ -113,10 +117,4 @@ class SearchPanelController, T> scrollController.jumpToTop(); return super.onReload(); } - - @override - void onClose() { - _listener?.cancel(); - super.onClose(); - } } diff --git a/lib/pages/search_panel/view.dart b/lib/pages/search_panel/view.dart index d818e70e4..707294efe 100644 --- a/lib/pages/search_panel/view.dart +++ b/lib/pages/search_panel/view.dart @@ -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);