Ответ 1
Просто добавьте android: screenOrientation = "портрет" в действие в AndroidManifest.xml.
Я использую React Native 0.29 и разрабатываю для Android. Я пытаюсь заблокировать ориентацию устройства. Мне нужно заблокировать экран в портретном режиме. Я попытался использовать этот репозиторий https://github.com/yamill/react-native-orientation, но он еще не поддерживает RN 0.29.
Есть ли способ заблокировать ориентацию устройства? Может быть, любой родной Android взломает студию Android?
Просто добавьте android: screenOrientation = "портрет" в действие в AndroidManifest.xml.
Существует запрос на растяжение для работы над 0.29.2 и выше: https://github.com/yamill/react-native-orientation/pull/85
Если вы используете его версию, она должна работать на 0.29.2 и выше: https://github.com/youennPennarun/react-native-orientation
Шаги:
rnpm unlink react-native-orientation
rm -rf node_modules/react-native-orientation
в вашем пакете. json отредактируйте запись react-native-orientation
как:
"react-native-orientation": "youennPennarun/react-native-orientation"
npm install
react-native link react-native-orientation
После этого нужно работать. Вы можете отслеживать ход PR и переключиться на основное репо, когда оно было объединено.
response-native-orientation - больше не совместим с новой версией (я пробовал 0.39.2). После связывания этого модуля у меня возникла ошибка компилятора. Как я понял, теперь мы должны использовать react-native-orientation-listener
npm install --save response-native-orientation-listenener
rnpm link
Шаг: 1
npm install git+https://github.com/yamill/react-native-orientation.git --save
Шаг 2: реакция-родная ссылка Шаг 3 Измените файл MainApplication.java с помощью
import com.github.yamill.orientation.OrientationPackage;// import
@Override
protected List getPackages() {
return Arrays.asList(
new MainReactPackage(),
new OrientationPackage() //add this
);
}
В настоящее время существует еще один способ сделать это один раз для Android и iOS, добавив:
"orientation": "portrait"
в app.json
, если вы используете Expo:
{
"expo": {
"name": "My app",
"slug": "my-app",
"sdkVersion": "21.0.0",
"privacy": "public",
"orientation": "portrait"
}
}
Или во время выполнения:
ScreenOrientation.allow()
Пример:
ScreenOrientation.allow(ScreenOrientation.Orientation.PORTRAIT);
Обратите внимание, что он работает только в том случае, если вы строите с помощью Expo, но так как это в настоящее время (по состоянию на 2017 год) рекомендуется в официальных руководствах по React Native Blog, то, вероятно, многие люди используют его, поэтому он стоит упомянуть как интересное решение в дополнение к взлому файлов конфигурации XML для Android.
Подробнее см.: как отключить ротацию в React Native?