Android点击空白区域,隐藏输入法软键盘
很多时候,我们在使用应用时,会出现输入法软键盘弹出的问题,通常情况下,我们默认会使用户点击返回键或者下一步对软键盘进行隐藏。为了更好的体验,我们可以实现当用户使用完毕软键盘时。点击空白区域即可实现隐藏的功能。效果如图所示:
代码实现
package example.com.jinlin.myapplication;import android.content.Context;
import android.os.Bundle;
import android.os.IBinder;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;/*** Created by J!nl!n on 15/5/21.*/
public abstract class BaseActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);iniView();}public abstract void iniView();@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {if (ev.getAction() == MotionEvent.ACTION_DOWN) {View v = getCurrentFocus();if (isShouldHideKeyboard(v, ev)) {hideKeyboard(v.getWindowToken());}}return super.dispatchTouchEvent(ev);}/*** 根据EditText所在坐标和用户点击的坐标相对比,来判断是否隐藏键盘,因为当用户点击EditText时则不能隐藏** @param v* @param event* @return*/private boolean isShouldHideKeyboard(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;}}// 如果焦点不是EditText则忽略,这个发生在视图刚绘制完,第一个焦点不在EditText上,和用户用轨迹球选择其他的焦点return false;}/*** 获取InputMethodManager,隐藏软键盘* @param token*/private void hideKeyboard(IBinder token) {if (token != null) {InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);im.hideSoftInputFromWindow(token, InputMethodManager.HIDE_NOT_ALWAYS);}}
}
当然我们还有更加简单的方法来实现该功能,只需要重写onTouchEvent方法即可。代码如下:
// 点击空白区域 自动隐藏软键盘public boolean onTouchEvent(MotionEvent event) {if(null != this.getCurrentFocus()){/*** 点击空白位置 隐藏软键盘*/InputMethodManager mInputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);return mInputMethodManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), 0);}return super .onTouchEvent(event);}
使用一个BaseActivity进行一些处理公共操作,其他Activity均继承自该基类Activity即可,则所有界面均可实现点击空白区域,隐藏软键盘。
示例代码下载
Android点击空白区域,隐藏输入法软键盘相关推荐
- Java调用虚拟键盘输入法_Android 点击屏幕空白处收起输入法软键盘(手动打开)...
很多时候,我们在使用应用时,会出现输入法软键盘弹出的问题,通常情况下,我们默认会使用户点击返回键或者下一步对软键盘进行隐藏.为了更好的体验,我们可以实现当用户使用完毕软键盘时.点击屏幕空白区域即可实现 ...
- jquery/js 点击空白区域隐藏某一个层/元素
场景:点击一个按钮弹出一个对话框/气泡,点击空白区域隐藏对话框/气泡: html: <button id="btn">按钮</button> <div ...
- Android 点击空白出隐藏软键盘
/*** 点击空白位置 隐藏软键盘*/@Overridepublic boolean onTouchEvent(MotionEvent event) {if (null != this.getCurr ...
- [Unity][NGUI]悬浮点击空白区域隐藏UI
获取NGUI 当前 鼠标 悬浮的 带有碰撞体BoxCollider 的UI对象 UICamera.hoveredObject ...public string hoverUI = "&quo ...
- android 输入法 确定按钮,Android项目:输入法软键盘显示/隐藏的监听和控制,InputMethodManager用法研究...
在项目开发中,用到编辑框的地方经常涉及到要监听或者控制软键盘的显示/隐藏状态.本以为这是很容易解决的一个小问题,没想到当初碰到这个问题才明白还得花点小心思才能整好.现将针对软键盘的显示/隐藏状态的监听 ...
- [iOS] UITextField隐藏软键盘心得(隐藏自身软键盘、点击Return自动转到下个文本框、轻触背景隐藏软键盘)...
作者:zyl910 关于隐藏软键盘,网上的办法良莠不齐,大多是通过实现UITextFieldDelegate来隐藏软键盘,该方法代码较多,且在文本框很多的时不好处理.我经过搜索与摸索,找到了最佳的处理 ...
- Android popupwindow 失去焦点或者点击空白区域时消失的解决方法
Android popupwindow 失去焦点或者点击空白区域时消失的解决方法 参考文章: (1)Android popupwindow 失去焦点或者点击空白区域时消失的解决方法 (2)https: ...
- Android小技巧 自动关闭输入法软键盘
一.简介 作用:获取编辑框的最大长度,当输入后文本长度等于最大长度则关闭软键盘. 使用场景:手机号,固定位数的密码,验证码 二.代码部分 工具类 ViewUtil.java public class ...
- Android --- 进入页面时,不弹出软键盘。当 EditText 被点击时不弹出软键盘,而是调用其他选择器,比如时间选择器等
功能需求: 1.进入页面时,不弹出软键盘 2.当 EditText 被点击时不弹出软键盘,而是调用其他选择器,比如时间选择器等 搜索百度测试: 1.百度上说用 editText.setInputTyp ...
最新文章
- 百度AI攻坚战:PaddlePaddle中国突围
- onCompositionStart与compositionend
- RDKit | 比较分子之间的相似性
- Py之matplotlib:matplotlib绘图自定义函数总结
- C++ STL stirng的复制比较
- 为什么中小企业选择 SAP Business One?
- 利用JavaScript检查用户注册信息是否正确,在以下情况不满足时报错并阻止提交表单...
- “搞机器学习没前途”
- Axure RP 8汉化
- adb shell 命令
- 商务与经济统计学习 --概率
- 上海大学计算机专业就业薪资,人均月薪过万?985、211、普通大学毕业生薪资水平大起底!和你想的不一样……...
- 渗透测试之通道构建Cheat Sheet
- 你参加了无数 “打卡” 群,为什么收获甚微。。。
- Camera Shading介绍
- Python调用高德地图API测距
- 用数字计算机公式表白,用最浪漫的数学表白,爱情数学表白公式
- View UI (iview)表格合并单元格(行/列合并)
- 国企工作,让我有更多时间了解VCN中文编程
- 计算机课件制作教程ppt,电脑制作ppt详细步骤_新手制作ppt详细步骤图文教程