Comment définir windowSoftInputMode par programmation sur différents écrans en react-native?

Oct 21 2020

Dans mon application React-native, j'ai besoin d'un comportement d'écran différent sur différents écrans lorsque le clavier apparaît.
Sur certains écrans, j'ai besoin que l'écran se déplace vers le haut, et sur certains écrans, je ne veux pas changer la position de l'écran, etc.

Des comportements individuels peuvent être obtenus en définissant des valeurs de android:windowSoftInputModeto adjustNothingou adjustResizein AndroidManifest.xmlfile.

Mais la définition de ces valeurs dans le fichier manifeste modifie le comportement de tous les écrans.

Existe-t-il un moyen de le modifier par programmation dans différents écrans?

Dans le code Android, cela semble réalisable en utilisant un appel getWindow () . Comment le faire en React-Native?

Réponses

1 AyeshaSaeed Nov 24 2020 at 21:38

Essayez ce composant react-native-android-keyboard-adjust

Lorsque le composant dans lequel vous ne souhaitez pas déplacer les vues vers le haut se monte, définissez AndroidKeyboardAdjust.setAdjustPan()et lorsque ce composant est démonté, réinitialisez-le AndroidKeyboardAdjust.setAdjustResize()ou selon l'option qui correspond à vos critères

Voir cette réponse

1 Praya Oct 21 2020 at 08:38

essayez d'utiliser ScrollView au lieu de View, puis enveloppez-le sur KeyboardAvoidingView