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。现在问题已经解决了。谢谢大家的帮助。
我希望我的应用程序固定为纵向。但是当我在移动设备中启用自动旋转时,我的应用程序可以旋转纵向和横向。即使我在 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。现在问题已经解决了。谢谢大家的帮助。