我需要知道哪个focusNode
目前专注于Flutter。
让我解释一下为什么我需要它。
我使用virtual_keyboard
包,因为我有一个数字输入的问题。
child: VirtualKeyboard(
onKeyPress: (VirtualKeyboardKey key) {
if (key.action == VirtualKeyboardKeyAction.Backspace) {
_priceController.text = _priceController.text
.substring(0, _priceController.text.length - 1);
}
_priceController.text += key.text ?? "";
},
type: VirtualKeyboardType.Numeric,
),
我有两个TextFormField
的(价格和金额),当用户改变焦点时,onKeyPress:
方法需要编辑另一个TextEditingController
的文本。如果我知道哪个focusNode
当前处于活动状态,也许我可以这样做。
3条答案
按热度按时间bxgwgixi1#
使用
FocusNode? _focusNode = FocusScope.of(context).focusedChild
;slhcrj9b2#
参考FocusNode
使用
focusnode.hasFocus
如果节点有输入焦点,则返回
true
。flseospp3#
您可以比较可聚焦小部件的FocusNode示例(例如TextField)与
FocusManager.instance.primaryFocus
。对我来说,这比
focusNode.hasFocus
可靠得多。