mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-05 09:37:52 +08:00
@@ -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,
|
||||
);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user