Вот несколько способов ограничить приложение, созданное с помощью React Native, только портретным режимом:
-
Использование библиотеки
react-native-orientation-locker
:- Установите библиотеку, запустив
npm install act-native-orientation-locker
. - Импортируйте библиотеку в свой код:
импортируйте ориентацию из 'react-native-orientation-locker'
. -
Чтобы заблокировать приложение в портретном режиме, добавьте следующий код в методы жизненного цикла компонента:
componentDidMount() { Orientation.lockToPortrait(); } componentWillUnmount() { Orientation.unlockAllOrientations(); }
- Установите библиотеку, запустив
-
Изменение файла AndroidManifest.xml:
- Откройте файл, расположенный по адресу
android/app/src/main/AndroidManifest.xml
. - Добавьте следующий атрибут в тег
:android:screenOrientation="portrait"
- Откройте файл, расположенный по адресу
-
Изменение файла Info.plist (для iOS):
- Откройте файл, расположенный по адресу
ios/YourAppName/Info.plist
. - Добавьте следующую пару ключ-значение в тег
:<key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> </array>
- Откройте файл, расположенный по адресу
-
Использование библиотеки
react-navigation
:- Если вы используете реагирующую навигацию, вы можете установить свойство
screenOptions
в навигаторе стека, чтобы заблокировать экраны в портретном режиме:import { createStackNavigator } from '@react-navigation/stack'; import { ScreenOrientation } from 'expo'; const Stack = createStackNavigator(); const App = () => { return ( <NavigationContainer> <Stack.Navigator screenOptions={{ headerShown: false, gestureEnabled: false, ...Platform.select({ ios: { screenOrientation: 'portrait', }, android: { screenOrientation: 'portrait', statusBarAnimation: 'fade', }, }), }} > {/* Your screens */} </Stack.Navigator> </NavigationContainer> ); };
- Если вы используете реагирующую навигацию, вы можете установить свойство