mod: 控制器监听事件移除

This commit is contained in:
guozhigq
2023-08-20 09:12:31 +08:00
parent 6bbbdd7710
commit 8627869309
16 changed files with 114 additions and 31 deletions

View File

@ -1,3 +1,4 @@
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:pilipala/common/skeleton/media_bangumi.dart';
@ -29,6 +30,7 @@ class _SearchPanelState extends State<SearchPanel>
bool _isLoadingMore = false;
late Future _futureBuilderFuture;
late ScrollController scrollController;
@override
bool get wantKeepAlive => true;
@ -43,20 +45,24 @@ class _SearchPanelState extends State<SearchPanel>
),
tag: widget.searchType!.type,
);
ScrollController scrollController = _searchPanelController.scrollController;
scrollController = _searchPanelController.scrollController;
scrollController.addListener(() async {
if (scrollController.position.pixels >=
scrollController.position.maxScrollExtent - 100) {
if (!_isLoadingMore) {
_isLoadingMore = true;
await _searchPanelController.onSearch(type: 'onLoad');
_isLoadingMore = false;
}
EasyThrottle.throttle('history', const Duration(seconds: 1), () {
_searchPanelController.onSearch(type: 'onLoad');
});
}
});
_futureBuilderFuture = _searchPanelController.onSearch();
}
@override
void dispose() {
scrollController.removeListener(() {});
super.dispose();
}
@override
Widget build(BuildContext context) {
super.build(context);