我在 Flutter 应用中有一个 TextFormField
,我不希望它在用户按 Enter 键时失去焦点(这是默认行为)。我尝试了一些涉及为字段提供 FocusNode
的操作:
1) FocusNode
和 onKeyEvent
(不起作用)
在这种方法中,条件从来都不是真的。
在initState
中:
_focusNode = FocusNode(onKeyEvent: (node, event) {
if (event.logicalKey == LogicalKeyboardKey.enter) {
return KeyEventResult.handled;
}
return KeyEventResult.ignore;
});
2) FocusNode
和 requestFocus
(有效)
这种方法有效,但感觉很hack。我想知道是否有更简单或更直接的方法。
在initState
中:
_focusNode = FocusNode();
在构建
中:
TextFormField(
focusNode: _focusNode,
onFieldSubmitted: (_) => _focusNode.requestFocus(),
);
最佳答案
您需要设置textInputAction
参数,
TextField(
textInputAction: TextInputAction.none,
...
)
关于flutter - 防止Flutter中按下回车键时TextFormField失去焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69564157/