React native android 自动旋转问题

React native android autorotate issue

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

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

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>

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

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

Orientation.lockToPortrait();

另一种方式 在 MainActivity.java

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

...

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

我终于解决了这个问题。问题是 bottomstacknavigator。我已将 createNativeStackNavigator 更改为 createStackNavigator。现在问题已经解决了。谢谢大家的帮助。