Как скрыть компоненты, когда клавиатура поднята? - PullRequest
0 голосов
/ 30 января 2020

Есть ли способ скрыть компоненты, когда отображается клавиатура, кроме установки пакетов?

1 Ответ

1 голос
/ 30 января 2020

Используя пример кода из документации Клавиатура , я бы сделал что-то вроде этого:

class Example extends Component {
  state = {keyboardOpen: false};

  componentDidMount() {
    this.keyboardDidShowListener = Keyboard.addListener(
      'keyboardDidShow',
      this._keyboardDidShow,
    );
    this.keyboardDidHideListener = Keyboard.addListener(
      'keyboardDidHide',
      this._keyboardDidHide,
    );
  }

  componentWillUnmount() {
    this.keyboardDidShowListener.remove();
    this.keyboardDidHideListener.remove();
  }

  _keyboardDidShow() {
    this.setState({
      keyboardOpen: true
    });
  }

  _keyboardDidHide() {
    this.setState({
      keyboardOpen: false
    });
  }

  render() {
    return (
      {!this.state.keyboardOpen && <MyComponent />}
    );
  }
}

В принципе, в componentDidMount вы подписываетесь на show и hide клавиатурные события. Вы отслеживаете текущее состояние клавиатуры в вашем компоненте state благодаря this.state.keyboardOpen, и вы условно отображаете MyComponent на основе значения this.state.keyboardOpen в вашем render методе.

...