mod: 为全屏和离开添加mounted限制

This commit is contained in:
orz12
2024-03-06 10:45:55 +08:00
parent 26ea932c73
commit b53b99de2f
2 changed files with 18 additions and 7 deletions

View File

@@ -99,7 +99,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
onUserLeaveHintListener.setMethodCallHandler((call) async {
if (call.method == 'onUserLeaveHint') {
if (autoPiP) {
autoEnterPip();
autoEnterPip();
}
}
});
@@ -202,9 +202,10 @@ class _VideoDetailPageState extends State<VideoDetailPage>
videoDetailController.hiddenReplyReplyPanel();
hideStatusBar();
}
setState(() {
isFullScreen.value = status;
});
isFullScreen.value = status;
if (mounted) {
setState(() {});
}
if (!status) {
showStatusBar();
if (horizontalScreen) {
@@ -250,13 +251,20 @@ class _VideoDetailPageState extends State<VideoDetailPage>
fullScreenStatusListener.cancel();
plPlayerController!.pause();
}
setState(() => isShowing = false);
isShowing = false;
if (mounted) {
setState(() => {});
}
super.didPushNext();
}
@override
// 返回当前页面时
void didPopNext() async {
isShowing = true;
if (mounted) {
setState(() => {});
}
videoDetailController.isFirstTime = false;
final bool autoplay = autoPlayEnable;
videoDetailController.playerInit(autoplay: autoplay);
@@ -274,7 +282,6 @@ class _VideoDetailPageState extends State<VideoDetailPage>
if (plPlayerController != null) {
listenFullScreenStatus();
}
setState(() => isShowing = true);
super.didPopNext();
}

View File

@@ -73,7 +73,11 @@ class _HeaderControlState extends State<HeaderControl> {
.videoDetailCtr!.plPlayerController.isFullScreen
.listen((bool status) {
isFullScreen = status;
setState(() {});
/// TODO setState() called after dispose()
if (mounted) {
setState(() {});
}
});
}