锁定设备方向 - React Native(Android)

时间:2016-07-27 20:07:39

标签: android react-native orientation device-orientation

我正在使用React Native 0.29并为Android开发。我正试图锁定设备方向。我需要的是以纵向模式锁定屏幕。我尝试使用此存储库https://github.com/yamill/react-native-orientation,但它还不支持RN 0.29。

有什么办法可以锁定设备方向吗?也许任何原生Android破解android studio?

6 个答案:

答案 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

步骤:

  1. 取消关联以前的安装与rnpm unlink react-native-orientation
  2. rm -rf node_modules/react-native-orientation
  3. package.json中的
  4. react-native-orientation的条目编辑为:

    "react-native-orientation": "youennPennarun/react-native-orientation"

  5. npm install

  6. react-native link react-native-orientation
  7. 事情应该在此之后发挥作用。您可以跟踪PR的进度并在合并后切换到主仓库。

答案 2 :(得分:1)

2017年更新

目前,还有另一种方法可以在Android和iOS上添加一次:

"orientation": "portrait"

如果您正在使用Expo,请在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();