Android 输入完成后点击其他地方使EditText隐藏光标和隐藏软键盘的实现
发布日期:2021-07-01 00:00:05
浏览次数:2
分类:技术文章
本文共 1711 字,大约阅读时间需要 5 分钟。
前言
在项目中经常使用EditText 非常方便 但是EditText 的光标总是闪烁 对于用户来说体验感不佳 也可以说是不完美的一个功能 如何优化用户体验是我们对产品的态度
隐藏光标和软键盘效果图
如何隐藏EditText光标
一开始想到的就是让父布局去争夺子控件的焦点 这样来实现 就是在点击父窗体的时候 这时候强行用代码 来把焦点获取到 取消Edittext的焦点 这样实现是可以实现 但是不完美 每次点击父窗体 整个View都闪烁一下 难看极了
另外一种解决方法 看下面
↓↓
封装工具HideInput
/** * 获取点击事件 */ @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { View view = getCurrentFocus(); if (isHideInput(view, ev)) { HideSoftInput(view.getWindowToken()); view.clearFocus(); } } return super.dispatchTouchEvent(ev); } /** * 判定是否需要隐藏 */ private boolean isHideInput(View v, MotionEvent ev) { if (v != null && (v instanceof EditText)) { int[] l = {0, 0}; v.getLocationInWindow(l); int left = l[0], top = l[1], bottom = top + v.getHeight(), right = left + v.getWidth(); if (ev.getX() > left && ev.getX() < right && ev.getY() > top && ev.getY() < bottom) { return false; } else { return true; } } return false; } /** * 隐藏软键盘 */ private void HideSoftInput(IBinder token) { if (token != null) { InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); manager.hideSoftInputFromWindow(token, InputMethodManager.HIDE_NOT_ALWAYS); } }
使用方法
集成封装好的工具类 自动实现光标的隐藏和软键盘
//集成封装好的工具类 自动实现光标的隐藏和软键盘public class WithdrawActivity extends HideInputActivity { //doing something}
共勉
我要一步一步往上爬
在最高点乘着叶片往前飞 任风吹干流过的泪和汗 我要一步一步往上爬 等待阳光静静看着它的脸 小小的天有大大的梦想 我有属于我的天 任风吹干流过的泪和汗 总有一天我有属于我的天
转载地址:https://lvshichunqiu.blog.csdn.net/article/details/107794224 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年05月05日 10时34分37秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Oracle 的循环中的异常捕捉和处理
2019-04-30
Oracle的pfile和spfile的一点理解和笔记
2019-04-30
java实现稀疏数组及将稀疏数组存入硬盘中
2019-04-30
2021-05-18
2019-04-30
libuv实现ping包发送和接收
2019-04-30
基础架构系列篇-系统centos7安装docker+COMPOSE
2019-04-30
基础架构系列篇-NGINX部署VUE
2019-04-30
基础架构系列篇-系统centos7安装kafka
2019-04-30
软件质量的8个特性
2019-04-30
2021年不可错过的17种JS优化技巧(一)
2019-04-30
在 Vue 中用 Axios 异步请求API
2019-04-30
MySQL进阶查询(SELECT 语句高级用法)
2019-04-30
Mysql 之主从复制
2019-04-30
【NLP学习笔记】中文分词(Word Segmentation,WS)
2019-04-30
对于时间复杂度的通俗理解
2019-04-30
如何输入多组数据并输出每组数据的和?
2019-04-30
行阶梯型矩阵
2019-04-30
MATLAB指定路径保存图片方法
2019-04-30
JAVA学习笔记6 - 数组
2019-04-30
【学习笔记】Android Activity
2019-04-30