response-native: android: модальная высота с мягким меню - PullRequest
0 голосов
/ 16 ноября 2018

На Samsung Galaxy S8, у которого есть мягкая нижняя строка меню, мои полноэкранные модальные компоненты произвольно рендерится либо с полноэкранной высоты, либо они оставляют место для мягкой программной строки меню.Такое поведение является абсолютно случайным и ограничивается только Modal компонентами.Я работаю с последней версией реактивной системы 0.57.5, но это происходит в нескольких версиях.

Я использую полноэкранный стиль AppTheme, как показано ниже:

<style name="AppTheme" parent="Theme.ReactNative.AppCompat.Light.NoActionBar.FullScreen">

Строка состояния также скрыта так:

StatusBar.setHidden(true);

Как видно на скриншотах, фон просвечивает в тех случаях, когдаModal решает не выполнять рендеринг с полной высотой.

Кто-нибудь сталкивался и исправил такую ​​проблему?

full screen not full screen

1 Ответ

0 голосов
/ 19 февраля 2019

Для всех остальных, если вы используете response-native-modal в соответствии с документацией, вы должны использовать response-native-extra-sizes-android .

React-У Native есть несколько проблем с определением правильной ширины / высоты устройства для некоторых устройств.Если у вас возникла эта проблема, вам нужно установить процессор-родной-дополнительных-размеров-андроид.Затем укажите реальную высоту окна (полученную по реакции-native-extra-sizes-android) для модальной модели:

  render() {
  const deviceWidth = Dimensions.get("window").width;
  const deviceHeight = Platform.OS === "ios"
    ? Dimensions.get("window").height
    : require("react-native-extra-dimensions-android").get("REAL_WINDOW_HEIGHT");

  return (
  <Modal
    isVisible={this.state.isVisible}
    deviceWidth={deviceWidth}
    deviceHeight={deviceHeight}
  >
    <View style={{ flex: 1 }}>
      <Text>I am the modal content!</Text>
    </View>
  </Modal>
  )
}

https://github.com/react-native-community/react-native-modal

...