1. ホーム
  2. flutter

[解決済み] TextFieldの外や画面上の任意の場所をクリックした後、flutterのソフト入力キーボードを非表示にする方法は?

2022-05-15 06:02:08

質問

現在、私はこのコードを使って、ソフトキーボードを隠す方法を知っています。 onTap のメソッドで、任意のウィジェットを使用することができます。

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

しかし、TextFieldの外や画面のどこかをクリックするとソフトキーボードを隠したいのです。そこで flutter でこれを行う方法はありますか?

どのように解決するには?

ソフトキーボードを隠すには、次のような簡単な方法を試してみてください。 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をタッチしても動作します。 new は Dart 2 ではオプションです。 . FocusManager.instance.primaryFocus は、ウィジェットツリーで現在プライマリーフォーカスを持っているノードを返します。

DartでのNull-safetyによる条件付きアクセス