TextField の外側または画面上の任意の場所をクリックした後に、Flutter でソフト入力キーボードを非表示にする方法は? 質問する

TextField の外側または画面上の任意の場所をクリックした後に、Flutter でソフト入力キーボードを非表示にする方法は? 質問する

現在、このコードを使用して、任意のウィジェットの方法でソフト キーボードを非表示にする方法を知っていますonTap

FocusScope.of(context).requestFocus(new FocusNode());

しかし、TextField の外側または画面上の任意の場所をクリックしてソフト キーボードを非表示にしたいです。flutterこれを行う方法はありますか?

ベストアンサー1

やり方が間違っています。ソフト キーボードを非表示にするには、この簡単な方法を試してください。画面全体をメソッドでラップしGestureDetectoronTapメソッドでこのコードを記述するだけです。

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

Dart での null 安全性を備えた条件付きアクセス

おすすめ記事