From b53b99de2f84b1fe342673cb791e9afb9ab08ed5 Mon Sep 17 00:00:00 2001 From: orz12 Date: Wed, 6 Mar 2024 10:45:55 +0800 Subject: [PATCH] =?UTF-8?q?mod:=20=E4=B8=BA=E5=85=A8=E5=B1=8F=E5=92=8C?= =?UTF-8?q?=E7=A6=BB=E5=BC=80=E6=B7=BB=E5=8A=A0mounted=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/video/detail/view.dart | 19 +++++++++++++------ .../video/detail/widgets/header_control.dart | 6 +++++- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/lib/pages/video/detail/view.dart b/lib/pages/video/detail/view.dart index 81bfbda4..2a83061e 100644 --- a/lib/pages/video/detail/view.dart +++ b/lib/pages/video/detail/view.dart @@ -99,7 +99,7 @@ class _VideoDetailPageState extends State onUserLeaveHintListener.setMethodCallHandler((call) async { if (call.method == 'onUserLeaveHint') { if (autoPiP) { - autoEnterPip(); + autoEnterPip(); } } }); @@ -202,9 +202,10 @@ class _VideoDetailPageState extends State 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 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 if (plPlayerController != null) { listenFullScreenStatus(); } - setState(() => isShowing = true); super.didPopNext(); } diff --git a/lib/pages/video/detail/widgets/header_control.dart b/lib/pages/video/detail/widgets/header_control.dart index 4afa97e5..5c0d633c 100644 --- a/lib/pages/video/detail/widgets/header_control.dart +++ b/lib/pages/video/detail/widgets/header_control.dart @@ -73,7 +73,11 @@ class _HeaderControlState extends State { .videoDetailCtr!.plPlayerController.isFullScreen .listen((bool status) { isFullScreen = status; - setState(() {}); + + /// TODO setState() called after dispose() + if (mounted) { + setState(() {}); + } }); }