【问题标题】:React native android autorotate issue反应本机android自动旋转问题
【发布时间】:2022-01-14 22:23:08
【问题描述】:

我希望我的应用程序应固定为纵向。但是当我在移动设备中启用自动旋转时,我的应用程序可以旋转纵向和横向。即使我在 AndroidManifest 文件中添加了android:screenOrientation="portrait"tools:ignore="LockedOrientationActivity",它仍然允许应用程序旋转。

任何人都可以帮助修复我的应用程序是否启用了纵向甚至自动旋转?我在谷歌上搜索过。但没有线索。请向我提出一些解决此问题的想法。

AndroidManifest 文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
  package="xxxxxxxxxxxxxx">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme"
      android:largeHeap="true"
      android:usesCleartextTraffic="true">
             <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustPan" android:launchMode="singleTop">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <activity 
      android:screenOrientation="portrait"      android:name="com.facebook.react.devsupport.DevSettingsActivity" />
      
    </application>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_CALENDAR" />
</manifest>

【问题讨论】:

  • 你能分享你的AndroidManifest文件吗,我已经按照你说的做了,它对我有用。
  • 嗨 Akshay Shenoy,我已经添加了 AndroidManifest 文件。请您检查一下并帮我解决这个问题。
  • 删除此行:tools:ignore="LockedOrientationActivity",然后重试。我看到了 2 行,尝试全部删除。
  • 为什么会有tools:ignore="LockedOrientationActivity",能去掉吗?
  • @AkshayShenoy 我删除了该代码并尝试过,当我在手机中启用自动旋转时,我仍然可以旋转。 ??????

标签: android react-native orientation


【解决方案1】:

让我们使用这个库react-native-orientation-locker, 您可以更改为您想要的任何方向。

import Orientation from 'react-native-orientation-locker';

Orientation.lockToPortrait();

【讨论】:

  • 嗨蒂姆,感谢您的回答。没有任何包,是否有任何属性可以解决这个问题?
【解决方案2】:

另一种方式 在 MainActivity.java

import android.content.pm.ActivityInfo; // <-- add this line

...

@Override
protected void onCreate(Bundle savedInstanceState) {
  
  ...
   
  setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // <-- add this line
  
  ...
}

【讨论】:

  • 嗨蒂姆,我已经添加了你的代码。但我仍然可以旋转应用程序。有什么建议吗? @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); }
  • 让我们从 android-studio 重建,可能是缓存。
  • 是的。我重建并安装在我的手机中,仍然面临问题。 ?
【解决方案3】:

最后我解决了这个问题。问题是bottomstacknavigator。我已将 createNativeStackNavigator 更改为 createStackNavigator。现在问题已经解决。感谢您的所有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-24
    • 2020-12-24
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多