mod: handle dispose

This commit is contained in:
bggRGjQaUbCoE
2024-08-29 17:45:41 +08:00
parent 536a2177c7
commit 33a4b408e1
43 changed files with 274 additions and 150 deletions

View File

@@ -67,6 +67,14 @@ class _VideoReplyPanelState extends State<VideoReplyPanel>
scrollListener();
}
@override
void dispose() {
fabAnimationCtr.dispose();
scrollController.removeListener(() {});
scrollController.dispose();
super.dispose();
}
void scrollListener() {
scrollController = _videoReplyController.scrollController;
scrollController.addListener(

View File

@@ -33,9 +33,7 @@ class VideoReplyReplyPanel extends StatefulWidget {
class _VideoReplyReplyPanelState extends State<VideoReplyReplyPanel> {
late VideoReplyReplyController _videoReplyReplyController;
late AnimationController replyAnimationCtl;
Future? _futureBuilderFuture;
late ScrollController scrollController;
@override
void initState() {
@@ -46,11 +44,12 @@ class _VideoReplyReplyPanelState extends State<VideoReplyReplyPanel> {
tag: widget.rpid.toString());
// 上拉加载更多
scrollController = _videoReplyReplyController.scrollController;
scrollController.addListener(
_videoReplyReplyController.scrollController.addListener(
() {
if (scrollController.position.pixels >=
scrollController.position.maxScrollExtent - 300) {
if (_videoReplyReplyController.scrollController.position.pixels >=
_videoReplyReplyController
.scrollController.position.maxScrollExtent -
300) {
EasyThrottle.throttle('replylist', const Duration(milliseconds: 200),
() {
_videoReplyReplyController.queryReplyList(type: 'onLoad');
@@ -66,7 +65,8 @@ class _VideoReplyReplyPanelState extends State<VideoReplyReplyPanel> {
@override
void dispose() {
// scrollController.dispose();
_videoReplyReplyController.scrollController.removeListener(() {});
_videoReplyReplyController.scrollController.dispose();
super.dispose();
}

View File

@@ -262,6 +262,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
@override
void dispose() {
appbarStream.close();
floating.dispose();
videoDetailController.floating?.dispose();
videoIntroController.videoDetail.close();