【发布时间】:2021-06-21 02:06:39
【问题描述】:
我是一个新来的颤振,没有什么可以解释什么FocusScope.of(context).requestFocus(FocusNode());
确实如此。我查看了 Flutter 文档,但无法弄清楚这是什么意思。
谁能给我解释一下?
每一个细节都会有所帮助。 谢谢。
【问题讨论】:
标签: flutter
我是一个新来的颤振,没有什么可以解释什么FocusScope.of(context).requestFocus(FocusNode());
确实如此。我查看了 Flutter 文档,但无法弄清楚这是什么意思。
谁能给我解释一下?
每一个细节都会有所帮助。 谢谢。
【问题讨论】:
标签: flutter
您发现在旧版本的 Flutter 上隐藏键盘的方法已过时。如果您想使用现代版本隐藏键盘,请参阅此答案:https://stackoverflow.com/a/56946311/11382675
回到这段代码。
FocusScope 是在树的某个位置自动为您创建的小部件。它只将焦点遍历到树中它下面的小部件。如果没有这个小部件,您可以在模态对话框中将焦点移到它后面的屏幕上。
FocusScope.of(context) 获取当前小部件在树中的位置(这就是 context 的位置)并沿着树向上查找最近的 FocusScope 小部件。
然后在找到的FocusScope 小部件上的requestFocus 方法会导致焦点移动到您传递的对象。
由于您不想专注于任何事情(以使键盘消失),因此您传递了一个新创建的 FocusNode 对象,该对象未与任何小部件关联。它是一次性的,之后会被销毁。
FocusNode 对象用于设置输入控件的焦点。如果您创建一个并在您的State 中保留对它的引用,您可以将其作为focusNode: _myFocusNode 传递给TextFormField 小部件,然后将其用作句柄来设置对该输入的关注。
【讨论】: