Imagine simple ScrollView avec plusieurs textinaux de texte comme lorsque je saisi la première entrée, le clavier s'ouvre et je peux taper du texte. Lorsque je veux passer à la deuxième entrée, je dois appuyer deux fois sur Taper - Premier type de clavier et Seul Second Tap ouvre le clavier pour la deuxième entrée. P> Une solution consiste à utiliser Ma question est de combiner ces deux comportements - dans l'OMHO, la meilleure expérience utilisateur - lorsque je clique sur une autre entrée, L'accent est immédiatement modifié sans rouvrir le clavier et quand je touche quelque part ailleurs, le clavier est fermé? p> J'utilise RN0.22 et l'exemple d'application est disponible sur https://rnplay.org/apps/kagpgw p> clavierhouldpersistTchaps = {vrai} < / Code> - La commutation fonctionne bien, cependant, le clavier n'est pas fermé du tout et que le clavier peut couvrir certaines des entrées ultérieures (ou des boutons).
Je peux aussi utiliser
keyboarddismissmode code> mais qui vient de fermer le clavier à la traînée. P>
6 Réponses :
Merci. Cette réponse aide si vous cliquez sur Entrée et il est ensuite couvert par le clavier une fois qu'il est ouvert. Cependant, vous ne vous aidera pas si la deuxième entrée (ou le bouton) est déjà couverte - puisque cette astuce fera défiler la première entrée initiale en "vue", mais il n'y a pas de garantie sur les autres composants.
à la fin j'ai trouvé une solution qui n'est pas optimale (de la perspective de codage) mais fonctionne du point de vue de l'utilisateur. J'ai fait un petit composant qui peut être utilisé à la place de Le seul inconvénient est que je dois collecter des poignées de nœud (comme retourné par ScrollView code>:
réagir. FindNodeHandle code>) de toutes les entrées de texte "manuellement" et transmettez-la sur le composant comme une matrice. P> p>
Voulez-vous s'il vous plaît expliquer où est textinputstate code> de? Quel paquet?
Il est livré avec rn - voir github.com/facebook / réacteur-natif / ... - j'ai importé cela comme Importer texn-députation de 'TextInpuTstate'; Code>
Merci, je vais regarder! @sodik
J'ai résolu mon problème avec ce code
<ScrollView keyboardDismissMode='on-drag' keyboardShouldPersistTaps={true} >
Le problème est que le clavier n'est pas fermé lorsque vous appuyez simplement sur En dehors de l'entrée.
@sodik regarde mes ans :)
J'ai mis à jour la réponse ci-dessus car le clavierhouldpersistTaps = {true} est désigné et maintenant le clavierhouldpersistTaps = 'toujours' est utilisé
En regardant https://facebook.github.io/ React-Native / Docs / ScrollView.html # KeyboardDismissmode Je trouve une méthode qui peut les faire:
Le code est comme suit: p>
Dans les nouvelles versions de réactivité, vous pouvez persister l'événement ScrollView Cliquez sur l'événement de ScrollView, comme ci-dessous:
<ScrollView keyboardShouldPersistTaps='always' keyboardDismissMode={'interactive'}></ScrollView>