Попробуйте этот обновленный код
componentWillMount() {
this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow',
this._keyboardDidShow);
this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide',
this._keyboardDidHide);
}
_keyboardDidShow = (e) => {
let keyboardHeight = e.endCoordinates.height;
this.setState({
minInputToolbarHeight: keyboardHeight + 45,
});
}
_keyboardDidHide = () => {
this.setState({
minInputToolbarHeight: 45,
});
}
componentWillUnmount() {
this.keyboardDidShowListener.remove();
this.keyboardDidHideListener.remove();
}
render() {
const {navigation} = this.props;
let platformConf = Platform.OS === 'android' ? {
minInputToolbarHeight: this.state.minInputToolbarHeight,
bottomOffset: 0,
} : {};
return (
<GiftedChat
style={{flex: 1}}
messages={this.state.messages}
onSend={messages => this.onSend(messages)}
onInputTextChanged={(text) => this._checkForMentions(text)}
keyboardShouldPersistTaps='never'
{...platformConf}
user={{
_id: 1,
}}/>
);
}
Если вышеуказанный метод не работает, вы можете легко исправить, используя react-native-keyboard-spacer
Ссылка
Также некоторые пользователи исправляют это, удаляя forceGetKeyboardHeight
Дополнительная информация