mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-31 08:08:19 +08:00
@@ -2,6 +2,7 @@ import 'dart:async';
|
|||||||
|
|
||||||
import 'package:PiliPlus/models/common/rank_type.dart';
|
import 'package:PiliPlus/models/common/rank_type.dart';
|
||||||
import 'package:PiliPlus/pages/common/common_controller.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:PiliPlus/pages/rank/zone/controller.dart';
|
||||||
import 'package:flutter/foundation.dart' show clampDouble;
|
import 'package:flutter/foundation.dart' show clampDouble;
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -20,12 +21,17 @@ class RankController extends GetxController
|
|||||||
@override
|
@override
|
||||||
ScrollController get scrollController => controller.scrollController;
|
ScrollController get scrollController => controller.scrollController;
|
||||||
|
|
||||||
|
final _mainCtr = Get.find<MainController>();
|
||||||
|
|
||||||
final tabScrollController = ScrollController();
|
final tabScrollController = ScrollController();
|
||||||
|
|
||||||
void scrollToCurrentIndex(double tabHeight, int index) {
|
void scrollToCurrentIndex(double tabHeight, int index) {
|
||||||
final position = tabScrollController.position;
|
final position = tabScrollController.position;
|
||||||
final offset = clampDouble(
|
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.minScrollExtent,
|
||||||
position.maxScrollExtent,
|
position.maxScrollExtent,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -58,6 +58,10 @@ class SearchPanelController<R extends SearchNumData<T>, T>
|
|||||||
|
|
||||||
StreamSubscription? _listener;
|
StreamSubscription? _listener;
|
||||||
|
|
||||||
|
void cancelListener() {
|
||||||
|
_listener?.cancel();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
super.onInit();
|
super.onInit();
|
||||||
@@ -113,10 +117,4 @@ class SearchPanelController<R extends SearchNumData<T>, T>
|
|||||||
scrollController.jumpToTop();
|
scrollController.jumpToTop();
|
||||||
return super.onReload();
|
return super.onReload();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
void onClose() {
|
|
||||||
_listener?.cancel();
|
|
||||||
super.onClose();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,12 @@ abstract class CommonSearchPanelState<
|
|||||||
@override
|
@override
|
||||||
bool get wantKeepAlive => true;
|
bool get wantKeepAlive => true;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
controller.cancelListener();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
super.build(context);
|
super.build(context);
|
||||||
|
|||||||
Reference in New Issue
Block a user