Flutter Textfield 组件可以通过 FocusNode
来监听获取/失去焦点的事件。具体操作步骤如下:
- 创建
FocusNode
对象:
FocusNode _focusNode = FocusNode();
- 在
TextField
组件中设置focusNode
属性:
TextField(
focusNode: _focusNode,
// 其他属性设置
)
- 监听获取/失去焦点的事件:
// 监听获取焦点的事件
_focusNode.addListener(() {
if (_focusNode.hasFocus) {
// 获取焦点后的操作
}
});
// 监听失去焦点的事件
_focusNode.addListener(() {
if (!_focusNode.hasFocus) {
// 失去焦点后的操作
}
});
注意事项:
- 避免在
addListener
中进行耗时操作,可以通过Future.delayed
来延迟执行。 - 记得在组件销毁时调用
FocusNode.dispose()
方法来释放资源。