在 Flutter 中,处理 TextField
的失去焦点事件(即失去焦点时触发的操作)通常有两种常用方式:使用 FocusNode
或 onEditingComplete
回调。以下是具体实现:
import 'package:flutter/material.dart';class MyTextField extends StatefulWidget {@override_MyTextFieldState createState() => _MyTextFieldState();
}class _MyTextFieldState extends State<MyTextField> {final FocusNode _focusNode = FocusNode();final TextEditingController _controller = TextEditingController();@overridevoid initState() {super.initState();_focusNode.addListener(_onFocusChange);}void _onFocusChange() {if (!_focusNode.hasFocus) {print('输入框失去焦点');// 处理逻辑}}@overrideWidget build(BuildContext context) {return TextField(controller: _controller,focusNode: _focusNode,decoration: InputDecoration(labelText: '请输入内容',),);}
}
失去焦点事件通常用于验证用户输入、自动保存内容或触发其他相关操作,比如在用户完成输入后立即验证格式是否正确。4K壁纸