如何禁用屏幕旋转(react-native)?

Posted

技术标签:

【中文标题】如何禁用屏幕旋转(react-native)?【英文标题】:How to disable screen rotation (react-native)? 【发布时间】:2016-02-26 07:00:58 【问题描述】:

是否有机会禁用屏幕旋转(仅允许垂直)?我想只支持纵向视图。并且需要它在 androidios 上工作。

【问题讨论】:

查看这个答案是否适用于 ios - ***.com/questions/32176548/… 如果使用 CRNA 应用程序,请使用 app.json 文件将 orientation 设置为纵向或横向。更多详情请看这里:docs.expo.io/versions/latest/workflow/… 请查看这篇来自媒体的文章-medium.com/react-native-training/… 这能回答你的问题吗? how to disable rotation in React Native? 【参考方案1】:

在您的 Manifest.xml 类中添加 screenOrientation

<activity android:name=".YourActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" />

【讨论】:

【参考方案2】:

将以下代码放入清单文件中

<activity
   android:screenOrientation="portrait"
   android:configChanges="orientation|keyboardHidden">
</activity>

【讨论】:

【参考方案3】:

在清单文件中写入以下代码

<activity
   android:screenOrientation="portrait"
   android:configChanges="orientation|screenSize">
</activity>

【讨论】:

【参考方案4】:

在安卓中:-

使用 xml :-android:screenOrientation="portrait"

使用 java :-

@Override 
public void onCreate(Bundle savedInstanceState) 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

【讨论】:

请清楚你的答案,这个问题同时适用于 iOs 和 Android。【参考方案5】:

获胜者:在应用程序代码中删除它,我通常在所有导入后立即将其丢弃。

Expo.ScreenOrientation.allow(Expo.ScreenOrientation.Orientation.PORTRAIT);

【讨论】:

【参考方案6】:

看看安卓官方documentation

您只需将其添加到您的 android MANIFEST 文件中的活动标签中:

<activity 
  android:screenOrientation=["unspecified" | "behind" |
    "landscape" | "portrait" |
    "reverseLandscape" | "reversePortrait" |
    "sensorLandscape" | "sensorPortrait" |
    "userLandscape" | "userPortrait" |
    "sensor" | "fullSensor" | "nosensor" |
    "user" | "fullUser" | "locked"]

使用您想要的方向。

【讨论】:

【参考方案7】:

尝试在config.xml中添加这个

<preference name="Orientation" value="landscape" />

【讨论】:

这适用于 Cordova/Phonegap,不适用于 React Native。

以上是关于如何禁用屏幕旋转(react-native)?的主要内容,如果未能解决你的问题,请参考以下文章

反应本机禁用自动旋转[重复]

如何从 android SERVICE 禁用/启用屏幕旋转?

启动后禁用屏幕旋转? [复制]

暂时,以编程方式禁用 Qt 中的屏幕旋转

快速禁用xib的屏幕旋转

如何禁用 Android 上的设备后退按钮(react-native)?