点击edittext 区域外隐藏输入法和点击edittext 显示输入法
在界面开发过程中,需要使用edittext来输入内容用来匹配查找,然后点击其他区域收起输入法。
本文在一个布局里有edittext 和一个list view ,edittext 输入内容,搜索list 里面的内容。然后点击其他区域后可以让输入法消失。
1.点击edittext 调出输入法键盘:
clearEditText 为继承exitText的编辑框。
监听touch事件,若点击了edittext,则获取焦点。
clearEditText.setOnTouchListener(clearEditTouchListener);
private View.OnTouchListener clearEditTouchListener = new View.OnTouchListener() {@Override public boolean onTouch(View v, MotionEvent event) {clearEditText.setFocusable(true); clearEditText.setFocusableInTouchMode(true); return false; } };
2. 点击edittext 区域外可以实现隐藏键盘。
/** * 点击edittext 以外的区域edittext 会失去焦点 * * @param ev * @return */ @Override public boolean dispatchTouchEvent(MotionEvent ev) {if (ev.getAction() == MotionEvent.ACTION_DOWN) {if (isEditTextArea(ev)) { //确认是否为EditText区域,若不是,则返回true,隐藏输入法InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (null != imm) {imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0); }}return super.dispatchTouchEvent(ev); }if (getWindow().superDispatchTouchEvent(ev)) {return true; }return onTouchEvent(ev); }private boolean isEditTextArea(MotionEvent motionEvent) {View v = getCurrentFocus(); //获取当前焦点view if (null != v && (v instanceof EditText)) { //若焦点view 为editText,则进行点击区域的判断int[] leftTop = {0, 0}; v.getLocationInWindow(leftTop); //获取屏幕中的位置 int left = leftTop[0]; int top = leftTop[1]; int right = left + v.getWidth(); int bottom = top + v.getHeight(); // if (motionEvent.getX() > left && motionEvent.getX() < right // && motionEvent.getY() > top && motionEvent.getY() < bottom) { if (motionEvent.getY() > top && motionEvent.getY() < bottom) { //点击区域是输入框的话就保留事件// 点击的是输入框区域,保留点击EditText的事件 return false; } else { //
clearEditText.setFocusableInTouchMode(false); clearEditText.setFocusable(false); return true; }}return false; }
点击edittext 区域外隐藏输入法和点击edittext 显示输入法相关推荐
- 如何实现点击div区域外隐藏div区域
1 遮罩层,有一个遮罩层,盖住其他地方,然后只有目标div可以点击,点击遮罩层就可以隐藏: 2.body上绑定事件,关闭,组件销毁前把事件移除. <div id="badge" ...
- Android点击空白区域,隐藏输入法软键盘
很多时候,我们在使用应用时,会出现输入法软键盘弹出的问题,通常情况下,我们默认会使用户点击返回键或者下一步对软键盘进行隐藏.为了更好的体验,我们可以实现当用户使用完毕软键盘时.点击空白区域即可实现隐藏 ...
- ionic 实现 应用内(webview中html页面点击) 和 应用外 (浏览器html页面点击) 打开本地安装应用...
应用内(webview中html页面点击) : 应用内打开本地安装应用指的是webview里打开应用,需要2个步骤: 1: 需要下载一个cordova插件:com.lampa.startapp ,也可 ...
- python怎么隐藏输入法,隐藏输入法和弹出输入法
//隐藏输入法 popupInputWindow(et_sns,getActivity()); /** * 强制隐藏 */ public static void popupInputWindow(fi ...
- element UI dialog点击dialog区域外会关闭dialog
需求描述 今天,在做Element+Vue项目时遇到一个需求:甲方要求在Dialog打开状态下,点击该Dialog以外的区域会导致该Dialog关闭:正确的状态应该是只有在点击关闭按钮,或者是Dial ...
- html点击隐藏点击出现,点击按钮,内容隐藏,再点击一下,然后内容又显示了,这种效果怎么做?然后默认的是隐藏的...
display演示 function clk() { var text = document.getElementById("text"); var clk_btn = docum ...
- android textview点击部分,Android开发第二大控件,EditText的属性和使用方法
EditText与TextView非常相似,它甚至与TextView 共用了绝大部分XML属性和方法.EditText与TextView的最大区别在于:EditText可以接受用户输入. 一.Edit ...
- Html 点透镂空遮罩,swift 实现遮罩部分区域“挖洞”效果和点击事件穿透
在日常开发中有时候我们需要在APP中做用户指导,比如第一次进入某个页面的时候显示遮罩覆盖, 但是又需要将遮罩下的某些区域暴露出来,便于文字说明,比如我们需要在视图上加个遮罩,并且遮罩上要显示 按钮2 ...
- 输入法全屏_五笔输入法那么方便,为什么败给了拼音?如今,我可算是明白了...
我们在日常生活中使用的输入法有很多种.输入法有四种:拼音输入法.五笔输入法.手写输入法和笔画输入法.其中,拼音输入法分为九笔输入法和二十六笔输入法.手写输入分为全屏手写和半屏手写.在这些输入法中,我们 ...
最新文章
- 字符串匹配的KMP算法——Python实现
- Linux 技巧:让进程在后台可靠运行的几种方法(转)
- hiho一下 第七周 Hihocoder #1043 : 完全背包
- POJ3277(矩形切割)
- java解析java源码_JAVA语言-Java源码解析-Stack源码分析
- jsp 中包含 一个路径为变量的文件
- jQuery子页面刷新父页面--局部刷新+整体刷新 [转]
- 怎么设置计算机管理员权限,Windows7管理员权限怎么设置?
- 举枪消灭烂代码的实战案例
- 区块链 自私挖矿(selfish mining)是什么
- pycharm调试步骤(详细)
- linux patch 命令小结
- 语音合成IC与语音IC的两三事
- html日历菜鸟,Calendar(日历)
- 修改android屏幕分辨率
- php curl 客户端,php通过curl设置客户端cookie
- win10系统的定位服务器,系统大神教你Win10笔记本电脑定位跟踪功能技巧
- web前端css清除浮动的方法总结
- UEFI启动阶段学习SEC阶段和PEI阶段_2020-05-12
- python从pdf文件中提取文本,并自动翻译