🐮
【Flutter】TextFieldのFocusNodeのエラーについて
記事について
textInputAction: TextInputAction.next
でキーボード入力に次へ遷移する機能を追加した際に、以下のようなエラーが出て解消に時間がかかったため備忘録。
The following assertion was thrown during method call TextInputClient.performAction: Tried to get the bounds of a focus node that didn't have its context set yet.
エラー内容について
元々テキストフォーム以外の画面をタップした際にフォーカスを外してキーボードが解除されるように、このような実装になっていた。
textForm.dart
body: GestureDetector(
onTap: () =>
FocusScope.of(context).requestFocus(new FocusNode()),
Flutter自体にunfocusが実装されるまでは基本的にこれでunfocusに対応していたらしい。
そこに新たにTextInputAction.nextを追加実装することとなった。
すると一番下のフォームで次へを押す→画面のどこかをタップ→再度フォームをタップ
を繰り返すとfocusが正常に外れることがなくなってしまいエラーが発生していた。
解決策
このように書き換えることでfocusが正しく動くようになった。
textForm.dart
body: GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
Discussion