一尘不染

在Flutter中将焦点从一个文本字段更改为下一个文本字段

flutter

我有两个textFormField小部件。用户完成第一个文本字段后,我想重点关注下一个textField。Flutter有办法做到这一点吗?当前,“完成”按钮仅关闭键盘。我猜想这个focusNode类可能是答案,但是我不确定是否有人会提供focusNode类的好例子吗?提前致谢。


阅读 262

收藏
2020-08-13

共1个答案

一尘不染

是的,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
触发,但是希望上面的示例为您提供足够的上下文,以为您的用例构建适当的解决方案。

2020-08-13