Donc j'utilise react-native-autogrow-textinput pour avoir un document éditable visible dans mon application. J'essaye actuellement de travailler autour du clavier afin d'ajuster la taille de la boîte de saisie de texte, de sorte que tout le texte soit visible. J'ai trouvé le code suivant pour le faireAnimer une valeur de hauteur pour la saisie de texte
componentWillMount() {
this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this.keyboardDidShow.bind(this));
this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this.keyboardDidHide.bind(this));
}
componentWillUnmount() {
this.keyboardDidShowListener.remove();
this.keyboardDidHideListener.remove();
}
keyboardDidShow(e){
let newSize = Dimensions.get('window').height- e.endCoordinates.height - 150;
console.log(e.endCoordinates);
this.setState({docViewHeight: newSize});
}
keyboardDidHide(e){
let newSize = Dimensions.get('window').height - 170;
this.setState({docViewHeight: newSize})
}
Cependant, le résultat que je reçois est: Lorsque le clavier est anime hors de l'écran, la hauteur du textinput reste le même, let newSize = Dimensions.get('window').height- e.endCoordinates.height - 150
, jusqu'à ce que le clavier a fini coulissant hors écran.
La hauteur s'ajuste ensuite pour remplir à nouveau tout l'écran, à l'exception de la sorte qui apparaît dans la nouvelle hauteur. Comment puis-je obtenir la valeur de cette hauteur pour grandir progressivement, il semble donc qu'il s'étend simplement pour s'adapter à l'ensemble de l'écran? Je poste mon code Autogrow TextInput ci-dessous également. Toute aide serait très appréciée.
<AutoGrowingTextInput
ref="editText"
editable = {this.state.editting}
style = {{fontSize: fontProperties.fontSize+3, marginLeft: 18, marginRight: 18, marginTop: 15}}
/*animate this*/ minHeight = {this.state.docViewHeight}
animation = {{animated: true, duration: 300}}
//has some other confidential props here for onChange etc
</AutoGrowingTextInput>