Vous pouvez utiliser le composant KeyboardAvoidingView de React-native en tant que
<KeyboardAvoidingView keyboardVerticalOffset={50}>
//View you want to be moved up when keyboard shows.
</KeyboardAvoidingView>
keyboardVerticalOffset={50}
est la marge entre le clavier et la vue, qui sera la hauteur de la vue ou du bouton que vous souhaitez. J'espère que cela vous aidera.
Edit : la meilleure façon de faire, et la plus personnalisable je pense, est d'écouter les événements du clavier et de changer la position absolue du composant que vous voulez au-dessus du clavier, en fonction de ces événements.
import {..,Keyboard} from "react-native";
componentDidMount () {
this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow',(event)=>this.keyboardDidShow(event) );
this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide',(event)=>this.keyboardDidHide(event) );
}
keyboardDidShow = (event) => {
// console.log("keyboard show",event)
this.setState({keyboardShow:true,keyboardHeight:event.endCoordinates.height}) //<<You got the keyboard height
}
keyboardDidHide = (event) => {
// console.log("keyboard hide",event)
this.setState({keyboardShow:false,keyboardHeight:0})
}
componentWillUnmount () {
this.keyboardDidShowListener.remove();
this.keyboardDidHideListener.remove();
}
maintenant, pour l'afficher au-dessus du clavier, vous pouvez donner du style à votre composant bouton comme ceci
style={{position:"absolute",bottom:this.state.keyboardHeight+20,right:0}}
et si vous voulez le cacher (bouton Done) il suffit de conditionner le JSX avec l'état keyboardShow.