【问题标题】:What does FocusScope.of(context).requestFocus(FocusNode()); mean in Flutter?FocusScope.of(context).requestFocus(FocusNode()); 是什么?在颤振中是什么意思?
【发布时间】:2021-06-21 02:06:39
【问题描述】:

我是一个新来的颤振,没有什么可以解释什么
FocusScope.of(context).requestFocus(FocusNode());

确实如此。我查看了 Flutter 文档,但无法弄清楚这是什么意思。

谁能给我解释一下?

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

【问题讨论】:

    标签: flutter


    【解决方案1】:

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

    回到这段代码。

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

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

    然后在找到的FocusScope 小部件上的requestFocus 方法会导致焦点移动到您传递的对象。

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

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

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 2019-03-13
      • 2011-08-12
      • 2017-06-11
      • 2018-03-05
      • 2023-03-27
      • 2021-09-14
      • 1970-01-01
      相关资源
      最近更新 更多