在 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壁紙