現在、このコードを使用して、任意のウィジェットの方法でソフト キーボードを非表示にする方法を知っていますonTap
。
FocusScope.of(context).requestFocus(new FocusNode());
しかし、TextField の外側または画面上の任意の場所をクリックしてソフト キーボードを非表示にしたいです。flutter
これを行う方法はありますか?
ベストアンサー1
やり方が間違っています。ソフト キーボードを非表示にするには、この簡単な方法を試してください。画面全体をメソッドでラップしGestureDetector
、onTap
メソッドでこのコードを記述するだけです。
FocusScope.of(context).requestFocus(new FocusNode());
完全な例は次のとおりです。
new Scaffold(
body: new GestureDetector(
onTap: () {
FocusScope.of(context).requestFocus(new FocusNode());
},
child: new Container(
//rest of your code write here
),
),
)
更新(2021年5月)
return GestureDetector(
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
child: Scaffold(
appBar: AppBar(
title: Text('Login'),
),
body: Body(),
),
);
これは、AppBar をタッチした場合でも機能します。Dart 2 ではオプションnew
です。ウィジェット ツリーで現在プライマリ フォーカスを持っているノードを返します。FocusManager.instance.primaryFocus