什么是 FocusScope.of(context).requestFocus(FocusNode());在颤振中是什么意思?

时间:2021-03-24 11:08:52

标签: flutter

我是 flutter 的新手,没有什么可以解释什么
FocusScope.of(context).requestFocus(FocusNode());

确实如此。我查看了 Flutter 文档,但无法弄清楚这到底意味着什么。

谁能给我解释一下?

每一个细节都会有所帮助。 谢谢。

1 个答案:

答案 0 :(得分:1)

您发现的是在旧版 Flutter 上隐藏键盘的过时方法。如果您想使用现代版本隐藏键盘,请参阅此答案:https://stackoverflow.com/a/56946311/11382675

回到这段代码。

FocusScope 是一个小部件,它会自动为您在树的某个位置创建。它只将焦点遍历到树中它下面的小部件。如果没有这个小部件,在模态对话框中,您可以将焦点移到它后面的屏幕上。

FocusScope.of(context) 获取当前小部件在树中的位置(这就是 context 的位置)并沿着树向上走以找到最近的 FocusScope 小部件。

然后,找到的 requestFocus 小部件上的 FocusScope 方法使焦点移动到您传递的对象上。

由于您不想专注于任何事情(使键盘消失),因此您传递了一个新创建的 FocusNode 对象,该对象与任何小部件都没有关联。它是一次性的,之后会被销毁。

FocusNode 对象用于在输入控件上设置焦点。如果您创建一个并在您的 State 中保留对它的引用,您可以将其作为 TextFormField 传递给 focusNode: _myFocusNode 小部件,然后将其用作句柄以将焦点设置在该输入上。< /p>