前言

最近在重构老项目 把之前的拍照功能也搬过来了
在输入打卡号的时候 软键盘一直在打开着 点签到按钮 很麻烦
所以想实现 点击屏幕空白处隐藏软键盘!!

封装工具

据传入控件的坐标和用户的焦点坐标,判断是否隐藏键盘,如果点击的位置在控件内,则不隐藏键盘

 /*** 根据传入控件的坐标和用户的焦点坐标,判断是否隐藏键盘,如果点击的位置在控件内,则不隐藏键盘** @param view  控件view* @param event 焦点位置* @return 是否隐藏*/public static void hideKeyboard(MotionEvent event, View view, Activity activity) {try {if (view instanceof EditText) {int[] location = {0, 0};view.getLocationInWindow(location);int left = location[0], top = location[1], right = left+ view.getWidth(), bootom = top + view.getHeight();// (判断是不是EditText获得焦点)判断焦点位置坐标是否在控件所在区域内,如果位置在控件区域外,则隐藏键盘if (event.getRawX() < left || event.getRawX() > right || event.getY() < top || event.getRawY() > bootom) {// 隐藏键盘IBinder token = view.getWindowToken();InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);inputMethodManager.hideSoftInputFromWindow(token, InputMethodManager.HIDE_NOT_ALWAYS);}}} catch (Exception e) {e.printStackTrace();}}/*** 隐藏软键盘** @param view :一般为EditText*/public static void hideKeyboard(View view) {InputMethodManager manager = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);manager.hideSoftInputFromWindow(view.getWindowToken(), 0);}

调用类Sign

重写 dispatchTouchEvent,根据焦点获取当前获得焦点的View

dispatchTouchEvent是处理触摸事件分发,事件(多数情况)是从Activity的dispatchTouchEvent开始的。执
行super.dispatchTouchEvent(ev),事件向下分发!

  @Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {//获取当前获得焦点的Viewif (ev.getAction() == MotionEvent.ACTION_DOWN) {View view = getCurrentFocus();//调用方法判断是否需要隐藏键盘KeyboardUtils.hideKeyboard(ev, view, this);}return super.dispatchTouchEvent(ev);}

Android 点击屏幕空白处隐藏软键盘相关推荐

  1. Android 点击空白出隐藏软键盘

    /*** 点击空白位置 隐藏软键盘*/@Overridepublic boolean onTouchEvent(MotionEvent event) {if (null != this.getCurr ...

  2. android 获取键盘回车键事件,设置软键盘回车键显示内容,点击空白处隐藏软键盘

    首先设置EditText的回车属性 drawable文件 @drawable/editcolor <?xml version="1.0" encoding="utf ...

  3. android中点击空白处隐藏软键盘

    在android中点击EditText的时候会弹出软键盘,这时候如果想隐藏软键盘或者填完内容后点其他的地方直接隐藏软键盘,可以按一下方法处理. 首先获得软键盘Manager InputMethodMa ...

  4. Android点击空白处隐藏软键盘

    首先声明下,以下内容主要参考自http://www.2cto.com/kf/201505/401382.html 由于部分代码实际使用过程中有些问题,做了部分更改,主要在方法2: 1. 一般直接使用如 ...

  5. 安卓:点击空白处隐藏软键盘

    建议重新封装,每个activity重新写,就显得有点烦琐 //region 点击隐藏键盘public boolean dispatchTouchEvent(MotionEvent ev) {if (e ...

  6. android隐藏软键盘方法,Android使用InputMethodManager显示和隐藏软键盘

    Android主要用InputMethodManager来对软键盘进行管理.手动显示或隐藏软键盘前需要先获取InputMethodManager. InputMethodManager imm = ( ...

  7. android软键盘设置收起键,Android 点击任意位置收起软键盘

    @Override public boolean dispatchTouchEvent(MotionEvent ev) { AppUtils.hideInputWhenTouchOtherView(t ...

  8. Android Hacks:在代码中隐藏软键盘

    2019独角兽企业重金招聘Python工程师标准>>> 在代码中可以很容易的实现软键盘的隐藏: InputMethodManager imm = (InputMethodManage ...

  9. Java调用虚拟键盘输入法_Android 点击屏幕空白处收起输入法软键盘(手动打开)...

    很多时候,我们在使用应用时,会出现输入法软键盘弹出的问题,通常情况下,我们默认会使用户点击返回键或者下一步对软键盘进行隐藏.为了更好的体验,我们可以实现当用户使用完毕软键盘时.点击屏幕空白区域即可实现 ...

最新文章

  1. Spring Security 实战干货: RBAC权限控制概念的理解
  2. 实例学习SSIS(四)--使用日志记录和错误流重定向
  3. 资源打包后项目中的文件
  4. Leetcode贪心 验证回文字符串
  5. 记一次MySQL手工注入
  6. Nacos发布0.5.0版本,轻松玩转动态 DNS 服务
  7. list.php tid 1,DedeCMS栏目用目录名个性化伪静态
  8. 洛谷P2486 [SDOI2011]染色(树链剖分+线段树判断边界)
  9. nyoj 410 how many ones?
  10. 三星手机GT-S7898连不上电脑,无法调试
  11. 腾讯云发布容器安全白皮书
  12. Mac上好用的音乐软件是哪个?MacOS专业音乐制作软件推荐
  13. 量化投资之工具篇一:Backtrader从入门到精通(7)-Indicator类源代码解读(2)
  14. MindManager2022安装使用教程
  15. 修改程序的图标与详细描述
  16. file和directory区别
  17. windows系统用cmd命令开启WiFi共享功能
  18. CPU占用过高问题的排查及解决
  19. python编程的缩进什么意思_编程缩进是什么意思
  20. 洲际酒店集团加速布局粤港澳大湾区,与华侨城酒店集团达成合作

热门文章

  1. vmware安装虚拟机加配置虚拟机网卡
  2. python 解析域名
  3. 【国际禁毒日】和TcaplusDB一起向毒品say NO!
  4. ZBrush教程(一):常用笔刷安装及运用
  5. 设计模式之禅【原型模式】
  6. 【MATLAB】通信信号调制通用函数 — 傅里叶逆变换
  7. 2020复旦机试题:斗牛
  8. 计算机科学中的数学等(视频)
  9. 赢在简单 IBM助力新疆中小企业发展
  10. 加粉推广全能助手 推广辅助工具 好多粉微信号加粉复制统计工具加强版,加粉推广神器,持续完善升级,新增统计点击转化,页面插件功能,完美支持ocpc接口