//实例化
FocusNode _focusNode = FocusNode();
![](https://img.haomeiwen.com/i5109238/c5adf5819977530f.gif)
//监听得放在初始化中
@override
void initState() {
super.initState();
//输入框焦点
_focusNode.addListener((){
if (!_focusNode.hasFocus) {
// print('失去焦点');
}else{
// print('得到焦点');
}
});
}
![](https://img.haomeiwen.com/i5109238/ce641da69f25e9d9.gif)
//离开页面记着销毁和清除
@override
void dispose() {
// TODO: implement dispose
_focusNode.unfocus();
super.dispose();
}
![](https://img.haomeiwen.com/i5109238/03c7831ab0d0a230.gif)
//清除输入框焦点
FocusScope.of(context).requestFocus(FocusNode());
![](https://img.haomeiwen.com/i5109238/0223f62aec90dc89.gif)
多看flutter 组件的dart源码
网友评论