用Listener监听TextField的FocusNode,来判断输入框是否在响应中
给输入框创建FocusNode和controller
FocusNode nameFocusNode = FocusNode();
final nameController = TextEditingController();
TextField(
controller: nameController,
cusNode: nameFocusNode,
),
initState方法中对FocusNode进行监听
@override
void initState() {
super.initState();
// 这里可以设置输入框默认值
nameController.text = widget.nickname;
// 输入框焦点
nameFocusNode.addListener(() {
if (!nameFocusNode.hasFocus) {// 失去焦点
print(nameController.text);
}
});
}
controller要销毁
@override
void dispose() {
nameController.dispose();
super.dispose();
}
网友评论