我正在开发一款专为纵向模式运行的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
拍摄照片的功能。
问题是,拍照时我无法改变方向,因为它被锁定为肖像。
有没有办法允许在特定视图(即相机容器)中更改方向,以便相机可以检测到正确的方向?
我想也许以下是可能的:
答案 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();
}
}