Android 点击键盘外非输入框 关闭软键盘(Java)

记录一下,方便以后使用

当点击输入框,输入完毕后,每次都需要点击软键盘上的缩小按钮,缩小按钮比较小,非常麻烦,不符合用户习惯。

需要在Activity中重写dispatchTouchEvent方法
首先得到焦点的View,然后判断焦点是否为输入框,然后确定是否关闭软键盘

/***重写dispatchTouchEvent* 点击软键盘外面的区域关闭软键盘* @param ev* @return*/
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {if (ev.getAction() == MotionEvent.ACTION_DOWN) {// 获得当前得到焦点的View,View v = getCurrentFocus();if (isShouldHideInput(v, ev)) {//根据判断关闭软键盘InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);imm.hideSoftInputFromWindow(v.getWindowToken(), 0);}}return super.dispatchTouchEvent(ev);
}/*** 判断用户点击的区域是否是输入框** @param v* @param event* @return*/
private boolean isShouldHideInput(View v, MotionEvent event) {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 (event.getX() > left && event.getX() < right&& event.getY() > top && event.getY() < bottom) {// 点击EditText的事件,忽略它。return false;} else {return true;}}return false;
}


参考文章: 跳到原文

Android 点击键盘外 非输入框 关闭软键盘相关推荐

  1. android点击软键盘外面的区域关闭软键盘解决办法

    很多时候在一个页面有多个输入框或者输入框加选择框的时候,我们需要根据用户的点击去关闭软键盘. 在Activity中加入以下代码即可 /**重写dispatchTouchEvent* 点击软键盘外面的区 ...

  2. Android点击空白区域,隐藏输入法软键盘

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

  3. android 关闭软键盘,点击软键盘之外关闭软键盘,editText关闭键盘

    /*** @description 关闭界面软键盘方法 复制直接调closeKeyBoard()用即可实现关闭软键盘*/ private InputMethodManager mImm; public ...

  4. android点击键盘外关闭软键盘

    安卓功能记录之点击键盘外关闭软键盘,用于日常记录 //关闭软键盘@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {if (ev.g ...

  5. DialogFragment常见问题(黑色棱角、点击编辑框外关闭软键盘..)

    1.设置对话框外部的背景为完全透明: 在onStart()方法中加入以下代码: @Overridepublic void onStart() {super.onStart();/*** 将对话框外部( ...

  6. Unity实现在Android或IOS端点击【InputField】输入框弹出键盘上的内容默认处于选中状态

    Unity实现在Android或IOS端点击[InputField]输入框弹出键盘上的内容默认处于选中状态 最终效果如: 上代码 using UnityEngine.EventSystems;/// ...

  7. android 点击关闭软键盘

    在项目中,editText获取焦点后,会自动弹出软键盘,关闭的时候一般需要按返回键或者点击软键盘上的按钮, 即使当前activity已经finish掉,软键盘依然存在,会影响用户的体验. 网上目前有很 ...

  8. android 键盘遮盖输入框_Android软键盘挡住输入框的终极解决方案

    前言 开发做得久了,总免不了会遇到各种坑. 而在Android开发的路上,『软键盘挡住了输入框』这个坑,可谓是一个旷日持久的巨坑--来来来,我们慢慢看. 入门篇 最基本的情况,如图所示:在页面底部有一 ...

  9. android 关闭软键盘_实现边到边的体验 | 让您的软键盘动起来 (一)

    Android 11 中的新功能之一是可以让应用在对于屏幕上的软键盘打开和关闭的过程创建无缝过渡的动画效果,这一功能源自 Android 11 中对 WindowInsets API 的大量改进.在 ...

  10. 点击空白区域关闭软键盘

    很多时候,需求需要点击输入框其他地方,关闭软键盘,下面分享一个utils public class HideKeyBroadUtils {private HideKeyBroadUtils(){}/* ...

最新文章

  1. Beta冲刺 (1/7)
  2. 技术感悟---主动学习
  3. 4. 寻找两个有序数组的中位数
  4. python函数“转移”
  5. hibernate 标识符_Hibernate中的标识符
  6. Linux系统控制文件 /etc/sysctl.conf详解
  7. Hadoop-2.2.0中文文档—— Common - CLI MiniCluster
  8. 1、Linux软件源配置操作
  9. 天翼去主机linux密码是什么意思,useradmin天翼初始密码 密码都是admin
  10. Photoshop对图片加边框
  11. fragment内嵌webView,输入框获得焦点禁用系统输入法,弹出自定义输入法的处理
  12. 如何运营好微信公众号
  13. QT编译失败几个常见问题
  14. 浏览器广告插件导致程序无法正常加载
  15. c语言函数指针做解释器,自己动手写解释器(1):函数定义和调用
  16. java筑基期(8)----jquery(高级)
  17. PHP中JSON与数组数据
  18. 如何更改SQL Server 2005的身份验证模式
  19. 【CF771A】Bear and Friendship Condition(并查集加深理解)
  20. iphone11各机型对比_iphone11系列3款新苹果手机有哪些区别?3款新苹果手机对比解析...

热门文章

  1. android o壁纸,超实用壁纸应用大合集 - 你想要的壁纸在这里统统都能找到! - Android 应用 - 【最美应用】...
  2. CS1.6 网络参数 设置
  3. 问题 D: 寻找丢失的LZY
  4. 计算机里多了一个硬盘q,电脑上多了个本地磁盘Q怎么回事
  5. java实现支付宝app支付
  6. 程序设计导引2.4——百练2801 填词
  7. 使用Python进行数据关联分析
  8. seo优化与html,HTML SEO 优化技巧
  9. 让样本不一样重要-A Dual Weighting Label Assignment Scheme for Object Detection
  10. 计算机的按cpu分类,英特尔处理器分类有哪些 英特尔处理器分类详解