diff --git a/lib/common/widgets/list_sheet.dart b/lib/common/widgets/list_sheet.dart index 76819d97..c24361ca 100644 --- a/lib/common/widgets/list_sheet.dart +++ b/lib/common/widgets/list_sheet.dart @@ -116,9 +116,11 @@ class _ListSheetContentState extends State super.initState(); if (GStorage.collapsibleVideoPage) { WidgetsBinding.instance.addPostFrameCallback((_) { - setState(() { - _isInit = false; - }); + if (mounted) { + setState(() { + _isInit = false; + }); + } }); } if (_isList) { diff --git a/lib/pages/video/detail/reply/view.dart b/lib/pages/video/detail/reply/view.dart index d0b049bd..a8324cec 100644 --- a/lib/pages/video/detail/reply/view.dart +++ b/lib/pages/video/detail/reply/view.dart @@ -8,6 +8,7 @@ import 'package:PiliPlus/pages/video/detail/reply/widgets/reply_item.dart'; import 'package:PiliPlus/pages/video/detail/reply/widgets/reply_item_grpc.dart'; import 'package:PiliPlus/utils/extension.dart'; import 'package:PiliPlus/utils/global_data.dart'; +import 'package:PiliPlus/utils/storage.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:get/get.dart'; @@ -71,6 +72,19 @@ class _VideoReplyPanelState extends State } } + @override + void didUpdateWidget(VideoReplyPanel oldWidget) { + super.didUpdateWidget(oldWidget); + if (GStorage.collapsibleVideoPage) { + _videoReplyController.showFab(); + if (widget.needController != false) { + _videoReplyController.scrollController.addListener(listener); + } else { + _videoReplyController.scrollController.removeListener(listener); + } + } + } + @override void dispose() { if (widget.needController != false) { diff --git a/lib/pages/video/detail/view_v.dart b/lib/pages/video/detail/view_v.dart index e48af906..f38d755b 100644 --- a/lib/pages/video/detail/view_v.dart +++ b/lib/pages/video/detail/view_v.dart @@ -1134,7 +1134,7 @@ class _VideoDetailPageVState extends State (removeSafeArea ? 0 : MediaQuery.of(context).padding.top), - child: videoIntro(false), + child: videoIntro(false, false), ), ), ], @@ -2417,9 +2417,11 @@ class _ViewPointsPageState extends State { void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { - setState(() { - _isInit = false; - }); + if (mounted) { + setState(() { + _isInit = false; + }); + } }); }