码迷,mamicode.com
首页 > 其他好文 > 详细

flutter 监测textInput失去焦点和得到焦点

时间:2021-01-22 11:46:59      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:字段   tran   func   stat   board   常用   function   点击   net   

参考:https://blog.csdn.net/weixin_27013291/article/details/112715846

 

1.创建FocusNode

//创建FocusNode对象实例
 FocusNode focusNode = FocusNode();

 

2.初始化函数中添加焦点监听


@override
void initState(){
super.initState();



//输入框焦点监测
_focusNode.addListener((){
if (!_focusNode.hasFocus) {
print(‘失去焦点‘);

}else{
print(‘得到焦点‘);


}
});
}
 

 

3.在TextField中引用FocusNode

new TextField(
//引用FocusNode
  focusNode: focusNode,
),

 

4.在页面Widget销毁时,释放focusNode

//页面销毁
@override
void dispose() {
super.dispose();
//释放
  focusNode.dispose();
}

 

一般情况需要点击空白处失去焦点,写在当前页面的最顶处组件

技术图片

 

 

GestureDetector(
      behavior: HitTestBehavior.translucent,
      onTap: () {
// 触摸收起键盘
        FocusScope.of(context).requestFocus(FocusNode());
      },
      child: Container()
)

 

常用方法

//获取焦点
void getFocusFunction(BuildContext context){
  FocusScope.of(context).requestFocus(focusNode);
}

//失去焦点
void unFocusFunction(){
  focusNode.unfocus();
}

//隐藏键盘而不丢失文本字段焦点:
void hideKeyBoard(){
  SystemChannels.textInput.invokeMethod(TextInput.hide);
}

 

flutter 监测textInput失去焦点和得到焦点

标签:字段   tran   func   stat   board   常用   function   点击   net   

原文地址:https://www.cnblogs.com/lude1994/p/14307416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!