Flutter FocusNode输入框焦点控制概述
题记
—— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精。
重要消息【视频教程 感兴趣的伙伴可以瞅瞅】
在Flutter使用FocusNode来捕捉监听TextField的焦点获取与失去,同时也可通过FocusNode来使用绑定对应的TextField获取焦点与失去焦点,FocusNode的使用分四步,如下:
第一步创建FocusNode,代码如下:
//创建FocusNode对象实例FocusNode focusNode = FocusNode();
第二步初始化函数中添加焦点监听,代码如下:
/// 输入框焦点事件的捕捉与监听
@override
void initState() {super.initState();//添加listener监听//对应的TextField失去或者获取焦点都会回调此监听focusNode.addListener((){if (focusNode.hasFocus) {print('得到焦点');}else{print('失去焦点');}});}
第三步在TextField中引用FocusNode,代码如下:
new TextField(//引用FocusNodefocusNode: focusNode,
),
第四步在页面Widget销毁时,释放focusNode,代码如下:
//页面销毁
@override
void dispose() {super.dispose();//释放focusNode.dispose();
}
在项目开发中,关于focusNode的常用方法代码如下:
//获取焦点
void getFocusFunction(BuildContext context){FocusScope.of(context).requestFocus(focusNode);
}//失去焦点
void unFocusFunction(){focusNode.unfocus();
}//隐藏键盘而不丢失文本字段焦点:
void hideKeyBoard(){SystemChannels.textInput.invokeMethod('TextInput.hide');
}
在实际项目中的一个用户操作习惯就是当输入键盘是弹出状态时,用户点击屏幕的空白处,键盘要隐藏,处理实现思路就是在MaterialApp组件中的第一个根布局设置一上手势兼听,然后在手势兼听中处理隐藏键盘的功能,代码如下:
/// 全局点击空白处理隐藏键盘Widget buildMainBody(BuildContext context) {return GestureDetector(onTap: () {//隐藏键盘SystemChannels.textInput.invokeMethod('TextInput.hide');},child: ... ... 省略);}
完毕 【视频教程 感兴趣的伙伴可以瞅瞅】
Flutter FocusNode输入框焦点控制概述相关推荐
- Flutter文本输入框TextField的焦点控制
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. github? 你可能需要 百度同步 CSDN 网易云课堂教程 掘金 知乎 Flutter系列文章 头条同步 本文章首发于微信公众号( ...
- flutter TextField 输入框被软键盘挡住的解决方案
flutter TextField 输入框被软键盘挡住的解决方案 参考文章: (1)flutter TextField 输入框被软键盘挡住的解决方案 (2)https://www.cnblogs.co ...
- Flutter文本输入框TextField控制器TextEditingController,TextField预设内容,获取TextField中的输入内容,兼听TextField中的内容变化
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. github? 你可能需要 百度同步 CSDN 网易云课堂教程 掘金 知乎 Flutter系列文章 头条同步 本文章首发于微信公众号( ...
- flutter TextField 输入框组件
TextField 顾名思义文本输入框,类似于iOS中的UITextField和Android中的EditText和Web中的TextInput.主要是为用户提供输入文本提供方便.相信大家在原生客户端 ...
- Flutter文本输入框TextField属性(InputDecoration、textInputAction、inputFormatters等等)详解
文章目录 TextField TextField decoration keyboardType TextField textInputAction TextField onChanged TextF ...
- Flutter PageView 使用详细概述
优美的应用体验 来自于细节的处理,更源自于码农的自我要求与努力,当然也需要码农年轻灵活的思维,不局限于思维,不局限语言限制,才是编程的最高境界. 本文章讲述 Flutter 跨平台开发中 PageVi ...
- Flutter文本输入框-TextField
TextField 文本输入框,类似Android中的EditText TextField(cursorColor: Colors.blue,cursorHeight: 15,cursorRadius ...
- Flutter TextField输入框属性详解
Material 组件库中提供了输入框组件TextField和表单组件Form.下面我们分别介绍一下. 1.TextField TextField 用于文本输入,它提供了很多属性,我们先简单的介绍一下 ...
- Flutter AlertDialog弹框的基本使用、Flutter showDialog方法使用概述
优美的应用体验 来自于细节的处理,更源自于码农的自我要求与努力,当然也需要码农年轻灵活的思维,不局限于思维,不局限语言限制,才是编程的最高境界. 在Flutter中使用 AlertDialog 来构建 ...
最新文章
- php foreach 循环 判断index 小于多少_PHP设计模式之迭代器模式 - 硬核项目经理
- 多数元素—leetcode169
- 解决firebug报“illegal character错误的问题
- JAVA显示子类num值_JavaSE8基础 子类中的成员变量与父类重名 简单示例
- Eclipse导入android项目包xml报错
- C语言:采用交互式方式打开指定的文件,若文件打开成功,则显示该文件的大小,并显示文件内容,若文件打开失败,则提示出错信息
- Acrobat Pro DC 教程,如何使用文本和图片文件创建 PDF?
- Linux性能优化(九)——Kernel Bypass
- 欧瑞变频器800参数设置_欧瑞变频器E800说明书(中文)2014080504A(2014.08.05).pdf
- 设计总结:进销存业务流程设计
- pc自建服务器传输3ds,新3DS自带的PC管理MicroSD 最强无线传输软件
- Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift全文翻译
- Excel 2010 SQL应用078 DATEPART函数与TRANSFROM函数
- matlab电解电容在哪,基于MATLAB的电容器直流局部放电检测.pdf
- Latex公式内行间距,字体大小控制
- 迷宫寻径--试探回溯法
- 【语音之家】AI产业沙龙—语音技术在贝壳的应用
- 你不曾见过的酷炫地图可视化作品(二)
- 全球及中国半导体行业发展方向及项目投资建设分析报告2022-2028年版
- 存储器及虚拟存储器技术
热门文章
- ECCV 2020 Oral | BorderDet : 用边界特征做检测
- StyleGAN进化过程详解
- 2020顶会指南:征稿截止时间、举办地、举办时间一览
- linux3.3内核去哪下载,Linux Kernel下载|Linux Kernel v3.18.3 稳定版 - 121下载站
- 8 个Python技巧 每天工作效率高一点 升职快人一步
- 如何搭建一套完整的深度学习系统?
- 笔记 | 《机器学习》中计算学习理论(上)
- 学习 | 雷军 1994 年写的代码,不服不行
- 计算机专业必备电子书单
- 构思解决问题的一般范式