可能大家都遇到多个输入框,当某个输入框有焦点时,光标显示。当我们点击输入框以外的地方。使输入框焦点消失,隐藏键  盘。

 //使editText点击外部时候失去焦点    @Override    public boolean dispatchTouchEvent(MotionEvent ev) {        if (ev.getAction() == MotionEvent.ACTION_DOWN) {            View v = getCurrentFocus();            if (isShouldHideInput(v, ev)) {//点击editText控件外部                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);                if (imm != null) {                    assert v != null;                    KeyBoardUtil.closeKeyboard(v);//软键盘工具类                    if (editText != null) {                        editText.clearFocus();                    }                }            }            return super.dispatchTouchEvent(ev);        }        // 必不可少,否则所有的组件都不会有TouchEvent了        return getWindow().superDispatchTouchEvent(ev) || onTouchEvent(ev);    }    EditText editText = null;    public boolean isShouldHideInput(View v, MotionEvent event) {        if (v != null && (v instanceof EditText)) {            editText = (EditText) v;            int[] leftTop = {0, 0};            //获取输入框当前的location位置            v.getLocationInWindow(leftTop);            int left = leftTop[0];            int top = leftTop[1];            int bottom = top + v.getHeight();            int right = left + v.getWidth();            return !(event.getX() > left && event.getX() < right                    && event.getY() > top && event.getY() < bottom);        }        return false;    }

下为KeyBoardUtil类:

    /**     * 关闭软键盘     *     * @param view     */    public static void closeKeyboard(View view) {        InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);        imm.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);    }

    把以上方法写在你的BaseActivity里就好啦~

     喜欢(❤ ω ❤)的小伙伴可以点个赞~  谢谢

更多相关文章

  1. 第六章 Android常见的UI基础控件(二)
  2. Android底部导航栏之BottomNavigationBar
  3. android 开发者选项
  4. android UI设计的一些心得与问题解决(无效果图)
  5. android 同一个界面多个跑马灯实现
  6. android showSoftInput方法调用软键盘不显示
  7. Android(安卓)启动界面 点击按钮跳转和3秒跳转
  8. TextView自定义跑马灯效果
  9. EditText 笔记

随机推荐

  1. Android(安卓)Handler消息机制(源码分析)
  2. Android设置权限问题
  3. Android开机广播和关机广播
  4. Android中Handler Runnable与Thread的区
  5. 教你配置安卓开发环境!(附带开发通讯教程)
  6. Android-缓存数据保存-通用方法
  7. Android正确关闭线程
  8. Android(安卓)渐变色沉浸式状态栏
  9. 关于Base64解码和编码报错的问题
  10. Android幻灯片式图片浏览器