mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
* Revert "fix: #779"
This reverts commit ddf7d82656.
* refix #779
This commit is contained in:
committed by
GitHub
parent
e8147680e6
commit
0dfc4e15bd
@@ -2,6 +2,7 @@ import 'dart:async';
|
|||||||
|
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
import 'package:PiliPlus/utils/extension.dart';
|
import 'package:PiliPlus/utils/extension.dart';
|
||||||
|
import 'package:easy_debounce/easy_throttle.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
@@ -11,6 +12,17 @@ abstract mixin class ScrollOrRefreshMixin {
|
|||||||
void animateToTop() => scrollController.animToTop();
|
void animateToTop() => scrollController.animToTop();
|
||||||
|
|
||||||
Future<void> onRefresh();
|
Future<void> onRefresh();
|
||||||
|
|
||||||
|
void toTopOrRefresh() {
|
||||||
|
if (scrollController.hasClients) {
|
||||||
|
if (scrollController.position.pixels == 0) {
|
||||||
|
EasyThrottle.throttle(
|
||||||
|
'topOrRefresh', const Duration(milliseconds: 500), onRefresh);
|
||||||
|
} else {
|
||||||
|
animateToTop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class CommonController<R, T> extends GetxController
|
abstract class CommonController<R, T> extends GetxController
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import 'package:PiliPlus/pages/dynamics_tab/controller.dart';
|
|||||||
import 'package:PiliPlus/pages/dynamics_tab/view.dart';
|
import 'package:PiliPlus/pages/dynamics_tab/view.dart';
|
||||||
import 'package:PiliPlus/utils/extension.dart';
|
import 'package:PiliPlus/utils/extension.dart';
|
||||||
import 'package:PiliPlus/utils/storage.dart';
|
import 'package:PiliPlus/utils/storage.dart';
|
||||||
|
import 'package:easy_debounce/easy_throttle.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
@@ -190,6 +191,25 @@ class DynamicsController extends GetxController
|
|||||||
scrollController.animToTop();
|
scrollController.animToTop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void toTopOrRefresh() {
|
||||||
|
final ctr = controller;
|
||||||
|
if (ctr.scrollController.hasClients) {
|
||||||
|
if (ctr.scrollController.position.pixels == 0) {
|
||||||
|
if (scrollController.hasClients &&
|
||||||
|
scrollController.position.pixels != 0) {
|
||||||
|
scrollController.animToTop();
|
||||||
|
}
|
||||||
|
EasyThrottle.throttle(
|
||||||
|
'topOrRefresh', const Duration(milliseconds: 500), onRefresh);
|
||||||
|
} else {
|
||||||
|
animateToTop();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
super.toTopOrRefresh();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onClose() {
|
void onClose() {
|
||||||
tabController.dispose();
|
tabController.dispose();
|
||||||
|
|||||||
@@ -156,9 +156,9 @@ class _MainAppState extends State<MainApp>
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
if (currentPage is HomePage) {
|
if (currentPage is HomePage) {
|
||||||
_homeController.animateToTop();
|
_homeController.toTopOrRefresh();
|
||||||
} else if (currentPage is DynamicsPage) {
|
} else if (currentPage is DynamicsPage) {
|
||||||
_dynamicController.animateToTop();
|
_dynamicController.toTopOrRefresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_lastSelectTime = now;
|
_lastSelectTime = now;
|
||||||
|
|||||||
Reference in New Issue
Block a user