Это сработало для меня: -
Сначала создайте FocusNode
и присвойте его текстовому полю, сделайте следующее: -
FocusNode
является долгоживущим компонентом, поэтому инициализируйтев методе initState
: -
FocusNode inputFieldNode;
@override
void initState() {
super.initState();
inputFieldNode = FocusNode();
}
Не забудьте очистить метод FocusNode
in dispose
после удаления формы: -
@override
void dispose() {
inputFieldNode.dispose();
super.dispose();
}
НазначьтеFocusNode
в текстовое поле и введите следующий код в onSubmitted:
: -
TextField(
focusNode: inputFieldNode,
onSubmitted: (String) => FocusScope.of(context).requestFocus(inputFieldNode),
)
Теперь текстовое поле не потеряет фокус даже после нажатия кнопки отправки.