在Flutter中将焦点从一个文本字段更改为下一个文本字段
问题内容:
我有两个textFormField
小部件。用户完成第一个文本字段后,我想重点关注下一个textField
。Flutter有办法做到这一点吗?当前,“完成”按钮仅关闭键盘。我猜想这个focusNode
类可能是答案,但是我不确定是否有人会提供focusNode类的好例子吗?提前致谢。
问题答案:
是的,FocusNode
和onFieldSubmitted
来自TextFormField的方法可能是可行的。
FocusScope.of(context).requestFocus(focusNode);
这是一个示例,可能会有所帮助:
FocusNode textSecondFocusNode = new FocusNode();
TextFormField textFirst = new TextFormField(
onFieldSubmitted: (String value) {
FocusScope.of(context).requestFocus(textSecondFocusNode);
},
);
TextFormField textSecond = new TextFormField(
focusNode: textSecondFocusNode,
);
// render textFirst and textSecond where you want
您可能还希望FocusScope.of()
从按钮而不是onFieldSubmitted
触发,但是希望上面的示例为您提供足够的上下文,以为您的用例构建适当的解决方案。