首页 > 解决方案 > React Native:只允许某个屏幕改变方向

问题描述

我想知道是否可以锁定 iOS 和 Android 上的所有屏幕,除了一个屏幕。我有一个视频播放器,我想在旋转后全屏显示,但所有其他屏幕都必须是唯一的纵向。

我为此使用 react-native-video。

我在使用示例时设法让它旋转,但我需要在 XCODE 和 Android Studio 中设置可能的方向。

我还尝试了 react-native-orientation 并在其上放了一个 .lockToPortrait() 但倾斜后,它再次改变。

任何帮助表示赞赏

标签: react-nativevideo

解决方案


const {navigation} = props

useEffect(() => {
    navigation.addListener("focus", () => {
      ScreenOrientation.lockAsync(ScreenOrientation.OrientationLock.DEFAULT);
    });

    navigation.addListener("blur", () => {
      ScreenOrientation.lockAsync(ScreenOrientation.OrientationLock.PORTRAIT);
    });
  }, [navigation]);

focus当我们想要允许屏幕旋转的屏幕时触发该事件blur,当用户离开包含此代码的屏幕时触发该事件,然后限制为 PORTRAIT(在这种情况下)。


推荐阅读