React Native - 方向锁定;我还能获得传感器的方向吗?

时间:2018-05-03 01:40:34

标签: android react-native

我正在开发一款专为纵向模式运行的React Native应用。方向通过清单锁定:

  <activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:windowSoftInputMode="adjustResize"
    android:screenOrientation="portrait">

我需要添加使用react-native-camera拍摄照片的功能。

问题是,拍照时我无法改变方向,因为它被锁定为肖像。

有没有办法允许在特定视图(即相机容器)中更改方向,以便相机可以检测到正确的方向?

我想也许以下是可能的:

  1. 直接从传感器请求方向
  2. 未锁定方向的新活动

1 个答案:

答案 0 :(得分:2)

我有同样的问题。我使用了React-Native-Orientation:https://github.com/yamill/react-native-orientation

您不应该在清单中锁定方向,而是可以使用此lib将每个屏幕锁定为纵向模式。使用lockToPortrait()

对于需要旋转的屏幕,只需使用unlockAllOrientations或lockToLandscape()

API非常棒,但问题是你需要为每个屏幕做这件事..如果你有很多屏幕,看起来有点矫枉过正..但事情很有效

其他提示

在每个屏幕上执行此操作将会变得忙乱无章。很难管理。 我所做的是将我的导航功能模块化为单个类。我

import Orientation from 'react-native-orientation';

export const navigateToMainScreen=()=>{
  determineOrientation("Main");
  this.props.navigation.navigate("Main");
}

const determineOrientation=(screenName)=>{
  // ur logic
  if(true){
      Orientation.lockToPortrait();
   }
  else{
   Orientation.lockToLandscape();
   }
}