Study

[Flutter] nextFocus가 이상한데로 이동할때

zombie45 2021. 5. 29. 18:23

TextFormField Focus가 다음으로 넘어갈때 그냥

node.nextFocus() 하거나

textInputAction: TextInputAction.next 를 이용하면

포커스가 아이콘으로 이동해서 매번 삽질을 하게됩니다.

BuildContext extension을 만들어서 해결하면 잘됩니다.

TextFormField(
  hintText: "아이디",
  onEditingComplete: () => context.nextEditableTextFocus(),
  validator: (value) {
  return value == null || value.length < 6
	? "아이디를 6 글자 이상으로 해주세요"
	: null;
  },
),

 

extension Utility on BuildContext {
  void nextEditableTextFocus() {
    do {
      FocusScope.of(this).nextFocus();
    } while (FocusScope.of(this).focusedChild!.context!.widget is! EditableText);
  }
}



반응형