Как динамически установить ориентацию нажатого экрана - React-Native-Navigation

Я хотел бы знать, как динамически изменять ориентацию нажатого экрана, используя реагирующую нативную навигацию.

Я использую startSingleScreenApp с ориентацией appStyle: «портрет», чтобы принудительно отображать портретные экраны. и я хочу, чтобы только один из нажатых экранов использовал «авто»

Я пробовал следующее:

static navigatorStyle = {
   drawUnderTabBar: true,
   orientation: 'auto'
};

Я также пробовал:

componentWillMount() {
   this.props.navigator.setStyle({
      orientation: 'auto'
   });
};

Я даже нажимал на экран, используя:

...
navigatorStyle: {
  orientation:'auto'
}
...

Возможно ли вообще изменить его динамически?


person Sean Wilson    schedule 05.07.2018    source источник


Ответы (1)


Этого можно достичь с помощью «React Native Orientation». Он будет прослушивать изменения ориентации устройства в приложениях React Native и программно устанавливать предпочтительную ориентацию для каждого экрана. Он работает как для Android, так и для iOS. Пожалуйста, перейдите по ссылке ниже для более подробной информации:

https://github.com/yamill/react-native-orientation

Вы можете использовать его следующим образом:

import Orientation from 'react-native-orientation';

// this locks the view to Portrait Mode. Need to add this in your screens 
 componentDidMount function
Orientation.lockToPortrait();

Or

// this locks the view to Landscape Mode. Need to add this in your screens 
 componentDidMount function
 Orientation.lockToLandscape();

Вы можете найти подробные инструкции / руководства по общей ссылке. Вы можете добавить свою логику в соответствии с вашими потребностями. Надеюсь, это поможет вам.

person Sandy.....    schedule 05.07.2018
comment
Я использовал это решение, но переход с портретного экрана на альбомный экран не плавный и немного запаздывает, как должно быть правильно? - person chengsam; 30.01.2019