Vous le faites d'une mauvaise manière, essayez simplement cette méthode simple pour masquer le clavier virtuel. Vous devez simplement envelopper tout votre écran dans la méthode GestureDetector
et dans la méthode onTap
écrire ce code.
FocusScope.of(context).requestFocus(new FocusNode());
Voici un exemple complet:
new Scaffold(
body: new GestureDetector(
onTap: () {
FocusScope.of(context).requestFocus(new FocusNode());
},
child: new Container(
//reste de votre code écrit ici
)
)
Mis à jour (mai 2021)
return GestureDetector(
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
child: Scaffold(
appBar: AppBar(
title: Text('Login'),
),
body: Body(),
),
);
Cela fonctionnera même lorsque vous touchez la AppBar, new
est optionnel en Dart 2. FocusManager.instance.primaryFocus
renverra le nœud qui a actuellement le focus principal dans l'arborescence des widgets.
Accès conditionnel en Dart avec la null-safety
3 votes
Vous pouvez envelopper tout votre écran dans un docs.flutter.io/flutter/widgets/GestureDetector-class.html et appeler le code ci-dessus dans
onTap: () => FocusScope.of(context).requestFocus(new FocusNode());
1 votes
Merci @GünterZöchbauer. Y a-t-il une méthode d'événement tactile, car appuyer sur l'écran ne va pas résoudre mon problème. Le clavier se cache lors de la méthode onTap. J'ai besoin de masquer le clavier fréquemment lorsque je touche l'écran.
0 votes
Désolé, je ne suis pas. Pourquoi taper ne résoudrait-il pas votre problème? Vous appuyez sur l'arrière-plan ou similaire. Lorsque cela se produit, vous appelez ... requestFocus ...
0 votes
Je travaille avec TabBar et j'ai une boîte de recherche sur chaque écran d'onglet. lorsque je fais glisser d'un onglet à un autre, il ne bascule pas vers un autre onglet et revient au même onglet si le clavier est actif sur l'écran ou s'il y a du texte dans le champ de texte de SearchView. J'ai un problème de glissement d'onglet principalement lorsque le clavier est actif, sinon le glissement d'onglet fonctionne bien.
0 votes
Comment cela vous empêche-t-il d'appliquer ma suggestion?
0 votes
Le clavier se cache au onTap mais le problème persiste, peut-être que le clavier se cache un peu tard.
0 votes
Je vois. Désolé, je ne sais pas comment contourner ça.
0 votes
Essayez d'utiliser un widget
Listener
pour avoir accès aux événements tactiles directs.0 votes
Comment puis-je ajouter le widget
Listener
, pouvez-vous s'il vous plaît me donner un exemple?0 votes
Essayez le package que j'ai créé :) pub.dartlang.org/packages/keyboard_actions