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?
3 Réponses :
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
)
)
Vous pouvez essayer de désaxer Textfield avec le code ci-dessous:
onFieldSubmitted: (term){
currentNode.unfocus();
}
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,
),
),
ou vous pouvez utiliser ce package :) pub.dartlang.org/packages/keyboard_actions