0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ソフトキーボードが勝手に閉じる

Posted at

業務にて詰まった部分とその解決方法を簡単に紹介

発生した問題

flutterでテキスト入力欄を実装していた時に発生
内容としてはTextFormFieldで実装した入力欄をタップしてソフトキーボードを開くと、1文字入力するたびにソフトキーボードが閉じてしまう状態になってしまいました

解決策(その1)

TextFormFieldだけではなく、FormBuilderでも発生する問題とのことで、解決方法も確立されていました
シンプルにGlobalKeyを生成して指定することで解決するとのこと

TextFormFieldの場合

final formKey = GlobalKey</*state指定*/>();
Form(
    key: formKey,
    child: TextFormField(
    // いろんな設定
    ),
);

FormBuilderの場合

final formKey = GlobalKey</*state指定*/>();
FormBuilder(
    key: formKey,
    // いろんな設定
);

これで一件落着と思いきや…

解決してなかった

上記の実装に変更してみたものの何も変わらず
何が問題なのかと検索していたところ、flutter_hooksの場合は上記の解決策では足りないとのこと

解決策(その2)

GlobalKeyを使うという部分は同じですが、生成の仕方に違いがありました
useMemorizedで生成する必要があるみたいです

final formKey = useMemorized(() => GlobalKey</*state指定*/>());

これを解決策(その1)と同じようにそれぞれのFormに指定することで解決

シンプルな問題も二段構えになると手強くなるという話でした

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?