我正在使用React Native 0.29并为Android开发。我正试图锁定设备方向。我需要的是以纵向模式锁定屏幕。我尝试使用此存储库https://github.com/yamill/react-native-orientation,但它还不支持RN 0.29。
有什么办法可以锁定设备方向吗?也许任何原生Android破解android studio?
答案 0 :(得分:25)
只需将android:screenOrientation =“portrait”添加到AndroidManifest.xml中的活动。
答案 1 :(得分:2)
有一个拉动请求可以在0.29.2及更高版本上工作: https://github.com/yamill/react-native-orientation/pull/85
如果您使用他的版本,它应该适用于0.29.2及以上: https://github.com/youennPennarun/react-native-orientation
步骤:
rnpm unlink react-native-orientation
rm -rf node_modules/react-native-orientation
将react-native-orientation
的条目编辑为:
"react-native-orientation": "youennPennarun/react-native-orientation"
npm install
react-native link react-native-orientation
事情应该在此之后发挥作用。您可以跟踪PR的进度并在合并后切换到主仓库。
答案 2 :(得分:1)
目前,还有另一种方法可以在Android和iOS上添加一次:
"orientation": "portrait"
app.json
中:
{
"expo": {
"name": "My app",
"slug": "my-app",
"sdkVersion": "21.0.0",
"privacy": "public",
"orientation": "portrait"
}
}
或在运行时:
ScreenOrientation.allow()
示例:
ScreenOrientation.allow(ScreenOrientation.Orientation.PORTRAIT);
请注意,它仅适用于您使用Expo进行构建,但由于目前(截至2017年)在React Native Blog的官方指南中推荐,因此很可能很多人都在使用它除了攻击特定于Android的XML配置文件之外,值得一提的是一个有趣的解决方案。
有关详细信息,请参阅: 的 how to disable rotation in React Native? 强>
答案 3 :(得分:0)
react-native-orientation - 不再与新版本兼容(我已经尝试过0.39.2)。链接此模块后,我有编译器的错误。 我得到它,现在我们应该使用react-native-orientation-listener
npm install --save react-native-orientation-listener
rnpm链接
答案 4 :(得分:0)
步骤:1
npm install git+https://github.com/yamill/react-native-orientation.git --save
<强>步骤2:强> 反应本地链接 的步骤:3 强> 使用以下命令修改MainApplication.java文件:
import com.github.yamill.orientation.OrientationPackage;// import
@Override
protected List getPackages() {
return Arrays.asList(
new MainReactPackage(),
new OrientationPackage() //add this
);
}
答案 5 :(得分:0)
您可以使用react-native-orientation-locker。
“反应本机方向”已被弃用。 使用“ react-native-orientation-locker”组件,您将能够检测到当前方向,并可以通过以下方式将其锁定为“纵向/横向”:
Orientation.lockToPortrait();
Orientation.lockToLandscapeLeft();
甚至使用以下方式释放锁
Orientation.unlockAllOrientations();