【发布时间】:2019-11-05 21:31:58
【问题描述】:
我有一个带有 UID 和 PWD 文本字段的登录页面。 UID,一旦提供,就会存储在共享首选项中。因此,每当显示登录屏幕时,焦点可能在 UID 文本字段(如果未提供/存储 UID)或 PWD 文本字段(如果显示或提供并自动填充 UID)。
我遇到的问题是我正在尝试使用以下方法将焦点设置到正确的 TextField:
FocusScope.of(context).requestFocus(_uidFocusNode)
FocusScope.of(context).requestFocus(_pwdFocusNode);
其中 _uidFocusNode 和 _pwdFocusNode 被定义为 FocusNodes 并通过 focusNode 属性附加到适当的 TextFields。
现在,我无法在 initState 中使用上述语句设置焦点,因为 Widget 尚未构建。但是当我在构建方法中设置它时,它会导致重建并且焦点字段一直在闪烁。有没有办法在根据逻辑构建 Widget 时设置焦点?请注意,自动对焦无法按预期工作 - 我需要将光标放在字段中。
【问题讨论】:
-
请问您说的是 iOS/Android 应用程序还是 Web 应用程序?这是完全不同的,因为在撰写本文时自动对焦还没有在网络上工作 (github.com/flutter/flutter/issues/58498)