浏览代码

fixes gallery viewer fullscreen edge case (#1959)

martyfuhry 2 年之前
父节点
当前提交
8adca31c24
共有 1 个文件被更改,包括 9 次插入7 次删除
  1. 9 7
      mobile/lib/modules/asset_viewer/views/gallery_viewer.dart

+ 9 - 7
mobile/lib/modules/asset_viewer/views/gallery_viewer.dart

@@ -59,6 +59,15 @@ class GalleryViewerPage extends HookConsumerWidget {
     late Offset localPosition;
     final authToken = 'Bearer ${box.get(accessTokenKey)}';
 
+    showAppBar.addListener(() {
+      // Change to and from immersive mode, hiding navigation and app bar
+      if (showAppBar.value) {
+        SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
+      } else {
+        SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive);
+      }
+    });
+
     useEffect(
       () {
         isLoadPreview.value =
@@ -247,13 +256,6 @@ class GalleryViewerPage extends HookConsumerWidget {
               (showAppBar.value && !isZoomed.value)) &&
           !isPlayingVideo.value;
 
-      // Change to and from immersive mode, hiding navigation and app bar
-      if (show) {
-        SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
-      } else {
-        SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive);
-      }
-
       return AnimatedOpacity(
         duration: const Duration(milliseconds: 100),
         opacity: show ? 1.0 : 0.0,