在Android中,我们可以调用setOnFocusChangeListener()
,在onFocusChanged()
方法中做一些事情,但是flutter不提供onFocus()
接口,如GestureDetector中的onTap()
或RawKeyboardListener中的onKey()
。
我看过flutter api关于focus的文章,https://api.flutter.dev/flutter/widgets/FocusManager-class.html,但是我找不到一个方法来实现我的请求,谁能给予我一把?
3条答案
按热度按时间czq61nw11#
此外,您还可以使用Focus小工具。
tzcvj98z2#
使用
FocusNode
这是一个完全正确的答案。
addListener
应该在initState()
中,而不是build()
中,因为这将导致每次构建小部件时都添加一个侦听器,而您很可能不希望这样。使用
flutter_hooks
软件包如果您碰巧使用了flutter_hooks包,则有一个专用的
useFocusNode
挂钩。vwkv1x7d3#
我想你正在寻找FocusNode类,使用
addListener
方法添加一个监听焦点变化的监听器函数。声明和定义
FocusNode
在文本字段中使用焦点节点
当文本字段是焦点时,您将得到true else false