Flutter Textfield 组件获取焦点的事件

4 min read

Flutter Textfield 组件可以通过 FocusNode 来监听获取/失去焦点的事件。具体操作步骤如下:

  1. 创建 FocusNode 对象:
FocusNode _focusNode = FocusNode();
  1. TextField 组件中设置 focusNode 属性:
TextField(
  focusNode: _focusNode,
  // 其他属性设置
)
  1. 监听获取/失去焦点的事件:
// 监听获取焦点的事件
_focusNode.addListener(() { 
  if (_focusNode.hasFocus) {
    // 获取焦点后的操作
  } 
});

// 监听失去焦点的事件
_focusNode.addListener(() { 
  if (!_focusNode.hasFocus) {
    // 失去焦点后的操作
  } 
});

注意事项:

  • 避免在 addListener 中进行耗时操作,可以通过 Future.delayed 来延迟执行。
  • 记得在组件销毁时调用 FocusNode.dispose() 方法来释放资源。