Мне нужно закрыть вид с помощью setState при закрытии клавиатуры. Используя событие onBlur в TextInput, оно работает нормально. Но в android при нажатии аппаратной кнопки назад также закрывается клавиатура. Но событие onBlur не было вызвано. TextInput все еще сфокусирован, но клавиатура закрыта. Для backhander, я использую следующий код,
componentWillMount() {
BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
}
handleBackPress = () => {
console.log("HANDLE BACK PRESSS")
return true;
}
Также я попробовал следующее - Keyboard.addListener
componentWillMount () {
this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);
this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);
}
componentWillUnmount() {
this.keyboardDidShowListener.remove();
this.keyboardDidHideListener.remove();
}
_keyboardDidShow() {
alert('Keyboard Shown');
}
_keyboardDidHide = () => {
alert('Keyboard Hidden');
}
Но бесполезно. Эти вещи не запускаются, когда клавиатура находится в открытом состоянии. После закрытия клавиатуры все работает как положено.
Предложите какой-нибудь способ получить триггер при нажатии кнопки назад, когда клавиатура находится в открытом состоянии.