11
votes

Réagir Native nécessite deux robinets pour modifier la mise au point d'entrée lorsque ScrollView

Imagine simple ScrollView avec plusieurs textinaux de texte comme xxx

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.

Une solution consiste à utiliser 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 mais qui vient de fermer le clavier à la traînée.

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é?

J'utilise RN0.22 et l'exemple d'application est disponible sur https://rnplay.org/apps/kagpgw

Mise à jour - Ce problème aurait pu être résolu dans RN 0,40 - voir https://github.com/facebook/react-native/commit/ 552C60192172F6EC503181C060C08BBC5CBCCC5A4


0 commentaires

6 Réponses :




5
votes

J'ai résolu mon problème avec ce code

<ScrollView
   keyboardDismissMode='on-drag'
   keyboardShouldPersistTaps={true}
>


2 commentaires

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 :)



0
votes

J'ai mis à jour la réponse ci-dessus car le clavierhouldpersistTaps = {true} est désigné et maintenant le clavierhouldpersistTaps = 'toujours' est utilisé xxx


0 commentaires

2
votes

En regardant https://facebook.github.io/ React-Native / Docs / ScrollView.html # KeyboardDismissmode Je trouve une méthode qui peut les faire:

  1. Après avoir effectué une entrée dans TextInput1, si vous cliquez sur INPUT2, le clavier persiste.
  2. Si vous cliquez sur un endroit vide, le clavier disparaîtra automatiquement.

    Le code est comme suit: xxx


0 commentaires

1
votes

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>


0 commentaires