Réagir indigènes comment faire pour déplacer l'écran vers le haut sur textinput
J'ai un écran de connexion créés à l'aide de réagir indigènes.
Comment puis-je modifier mon écran quand l'utilisateur tape dans la textInput?
Dois-je écouter le onFocus() événement et d'utiliser le style css pour modifier le style de la vue?
- Nous avons besoin de plus de contexte/le code ici.
- double possible de Comment auto-glisser la fenêtre de derrière le clavier lorsque TextInput a le focus?
- Vous pouvez theck ceci Github question. Nous allons discuter de la façon d'atteindre cet objectif dans il.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser Le ScrollView de contrôle de l'écran vers le haut et vers le bas. Tant que l'utilisateur n'a pas porté tout
TextInput
, vous pouvez désactiver le défilement. Sur l'accent, juste passer la scrollview à l'aide de Le Décalage Du Contenu prop.Espère que cela aide!
En 2017 (RN 0.43) il existe une composante spéciale pour cela: KeyboardAvoidingView
behavior={(Platform.OS === 'ios') ? 'padding' : null}
Nuit fureurs de réponse est assez bonne, bien que ne serait pas de chichi avec la ScrollView de
contentOffset
, j'utiliseraisScrollResponder
:Voir la définition de la méthode: scrollResponderScrollNativeHandletokeyboard
Ce package fait un grand travail, introduit une KeyboardAwareScrollView composant qui permet de faire défiler l'affichage jusqu'à la correspondance de la saisie avec le clavier, faites défiler vers le bas.
Exécuter en collation :
https://snack.expo.io/H1BE5ZoXV
Et une autre solution, travail avec la RN 0.2, cette fois, au lieu d'écraser le contenu qui défile.
...
C'est un shoot merde pour obtenir le clavier natif de sensibilisation à la fonctionnalité de la ScrollView de travail. Pour mon application Android, il fonctionne parfaitement sur un écran qui est presque identique que les autres pour ce qui ne fonctionne pas. Et sur iOS, il ne fonctionne tout simplement pas. C'est ce qui fonctionne pour moi:
Remarque: Ce peut ne fonctionner que si votre
<TextInput/>
est au bas de l'écran, il était dans mon cas.Essayer de mettre
multiline={true}
prop pour le TextInput. Il a travaillé pour moi.