在界面开发过程中,需要使用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 显示输入法相关推荐

  1. 如何实现点击div区域外隐藏div区域

    1 遮罩层,有一个遮罩层,盖住其他地方,然后只有目标div可以点击,点击遮罩层就可以隐藏: 2.body上绑定事件,关闭,组件销毁前把事件移除. <div id="badge" ...

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

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

  3. ionic 实现 应用内(webview中html页面点击) 和 应用外 (浏览器html页面点击) 打开本地安装应用...

    应用内(webview中html页面点击) : 应用内打开本地安装应用指的是webview里打开应用,需要2个步骤: 1: 需要下载一个cordova插件:com.lampa.startapp ,也可 ...

  4. python怎么隐藏输入法,隐藏输入法和弹出输入法

    //隐藏输入法 popupInputWindow(et_sns,getActivity()); /** * 强制隐藏 */ public static void popupInputWindow(fi ...

  5. element UI dialog点击dialog区域外会关闭dialog

    需求描述 今天,在做Element+Vue项目时遇到一个需求:甲方要求在Dialog打开状态下,点击该Dialog以外的区域会导致该Dialog关闭:正确的状态应该是只有在点击关闭按钮,或者是Dial ...

  6. html点击隐藏点击出现,点击按钮,内容隐藏,再点击一下,然后内容又显示了,这种效果怎么做?然后默认的是隐藏的...

    display演示 function clk() { var text = document.getElementById("text"); var clk_btn = docum ...

  7. android textview点击部分,Android开发第二大控件,EditText的属性和使用方法

    EditText与TextView非常相似,它甚至与TextView 共用了绝大部分XML属性和方法.EditText与TextView的最大区别在于:EditText可以接受用户输入. 一.Edit ...

  8. Html 点透镂空遮罩,swift 实现遮罩部分区域“挖洞”效果和点击事件穿透

    在日常开发中有时候我们需要在APP中做用户指导,比如第一次进入某个页面的时候显示遮罩覆盖, 但是又需要将遮罩下的某些区域暴露出来,便于文字说明,比如我们需要在视图上加个遮罩,并且遮罩上要显示 按钮2 ...

  9. 输入法全屏_五笔输入法那么方便,为什么败给了拼音?如今,我可算是明白了...

    我们在日常生活中使用的输入法有很多种.输入法有四种:拼音输入法.五笔输入法.手写输入法和笔画输入法.其中,拼音输入法分为九笔输入法和二十六笔输入法.手写输入分为全屏手写和半屏手写.在这些输入法中,我们 ...

最新文章

  1. 字符串匹配的KMP算法——Python实现
  2. Linux 技巧:让进程在后台可靠运行的几种方法(转)
  3. hiho一下 第七周 Hihocoder #1043 : 完全背包
  4. POJ3277(矩形切割)
  5. java解析java源码_JAVA语言-Java源码解析-Stack源码分析
  6. jsp 中包含 一个路径为变量的文件
  7. jQuery子页面刷新父页面--局部刷新+整体刷新 [转]
  8. 怎么设置计算机管理员权限,Windows7管理员权限怎么设置?
  9. 举枪消灭烂代码的实战案例
  10. 区块链 自私挖矿(selfish mining)是什么
  11. pycharm调试步骤(详细)
  12. linux patch 命令小结
  13. 语音合成IC与语音IC的两三事
  14. html日历菜鸟,Calendar(日历)
  15. 修改android屏幕分辨率
  16. php curl 客户端,php通过curl设置客户端cookie
  17. win10系统的定位服务器,系统大神教你Win10笔记本电脑定位跟踪功能技巧
  18. web前端css清除浮动的方法总结
  19. UEFI启动阶段学习SEC阶段和PEI阶段_2020-05-12
  20. python从pdf文件中提取文本,并自动翻译

热门文章

  1. uniapp自定义导航栏与手机状态栏重叠问题
  2. C 语言 switch 语句
  3. SpringBoot之使用Security
  4. 高考倒计时100天....99天
  5. 宏睿达认证计费管理系统(支持微信公众号)使用说明,爱快路由认证计费系统
  6. Android推送的群魔乱舞
  7. android sdk 固态硬盘,使用TVM在android中进行Mobilenet SSD部署
  8. 前端传图片file给后端,后端接收为空,0kb
  9. 拯救剧荒!程序员最爱看的美剧TOP5!
  10. 图纸识别自动生成BOM清单的方法