React Native: слушатель keyboardDidShow не запускается, когда для android: windowSoftInputMode установлено значение «AdjustNothing» - PullRequest
0 голосов
/ 22 декабря 2018

У меня android:windowSoftInputMode="adjustNothing" установлено в AndroidManifest.xml

Добавлен прослушиватель для клавиатуры:

componentDidMount() 
    this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);
  }

Определена функция:

_keyboardDidShow = () => {  
    console.log('_keyboardDidShow called');
}

Но _keyboardDidShowникогда не вызывается, когда android:windowSoftInputMode="adjustNothing".Он прекрасно работает, когда android:windowSoftInputMode="adjustResize" или android:windowSoftInputMode="adjustPan"

Из документов:

Обратите внимание, что если вы установили android: windowSoftInputMode для AdjustResize или AdjustNothing, то будут только события клавиатурыDidShow и keyboardDidHide.доступно на Android.клавиатураWillShow, а также клавиатураWillHide, как правило, недоступна на Android, поскольку нет соответствующего собственного события.

Справочник по клавиатуре

Я смотрел:

https://github.com/facebook/react-native/issues/2852 (выглядит как открытая ошибка)
Реагируют на собственные события клавиатуры, не работающие с android: windowSoftInputMode = "AdjustNothing" (решение: установите windowSoftInputMode в AdjustPan)

У меня не может быть android:windowSoftInputMode установить что-либо кроме adjustNothing

У кого-нибудь есть решение или способ обойти эту проблему?

...