9
votes

Comment puis-je faire en sorte que le fait de taper n'importe où en dehors du TextField le fasse perdre le focus?

Lorsque je tape sur un TextField , il gagne en concentration. Le clavier s'ouvre et la saisie fonctionne. Maintenant que j'ai fini de taper et que je touche n'importe où sauf le TextField , je m'attendais à ce que le focus change et que le clavier disparaisse, ce n'est pas le cas.

Comment puis-je faire en tapant n'importe où en dehors du TextField pour le faire perdre le focus?


1 commentaires

ou vous pouvez utiliser ce package :) pub.dartlang.org/packages/keyboard_actions


3 Réponses :


3
votes

Vous pouvez envelopper tout l'écran dans GestureDetector de sorte que lorsque vous touchez n'importe où sur GestureDetector , la méthode onTap est appelée, ce qui masquera le logiciel clavier.

new Scaffold(
  body: new GestureDetector(
    onTap: () {
      /*This method here will hide the soft keyboard.*/
      FocusScope.of(context).requestFocus(new FocusNode());
    },
    child: new Container(
       //More work here
    )
 )


0 commentaires

0
votes

Vous pouvez essayer de désaxer Textfield avec le code ci-dessous:

onFieldSubmitted: (term){
  currentNode.unfocus();
}


0 commentaires

0
votes
child: TextFormField(
                keyboardType: TextInputType.text,
                textInputAction: TextInputAction.search,
              focusNode: _emailFocus,
              onFieldSubmitted: (term) {
              _emailFocus.unfocus();
              FocusScope.of(context).requestFocus(_passwordFocus);
              },
                controller: _emailController,
                decoration: InputDecoration(
                  border: InputBorder.none,
                  focusedBorder: InputBorder.none,
                ),
              ),

0 commentaires