Android 点击editview以外位置实现隐藏输入法

 更新时间:2017年06月20日 09:03:50   投稿:lqh  
这篇文章主要介绍了Android 点击editview以外位置实现隐藏输入法的相关资料,需要的朋友可以参考下

Android 点击editview以外位置实现隐藏输入法

         实现代码:

@Override 
  public boolean dispatchTouchEvent(MotionEvent ev) { 
    if (ev.getAction() == MotionEvent.ACTION_DOWN) { 
      View v = getActivity().getCurrentFocus(); 
      if (isShouldHideInput(v, ev)) { 
 
        InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
        if (imm != null) { 
          imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 
        } 
      } 
      return getActivity().dispatchTouchEvent(ev); 
    } 
    // 必不可少,否则所有的组件都不会有TouchEvent了 
    if (getActivity().getWindow().superDispatchTouchEvent(ev)) { 
      return true; 
    } 
    return getActivity().onTouchEvent(ev); 
  } 
 
  public boolean isShouldHideInput(View v, MotionEvent event) { 
    if (v != null && (v instanceof EditText)) { 
      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(); 
      if (event.getX() > left && event.getX() < right 
          && event.getY() > top && event.getY() < bottom) { 
        // 点击的是输入框区域,保留点击EditText的事件 
        return false; 
      } else { 
        return true; 
      } 
    } 
    return false; 
  } 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Kotlin下Rxjava的基础用法及流式调用示例详解

    Kotlin下Rxjava的基础用法及流式调用示例详解

    这篇文章主要为大家介绍了Kotlin下Rxjava的基础用法及流式调用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 利用kotlin实现统计文件字符个数的方法示例

    利用kotlin实现统计文件字符个数的方法示例

    最近在学习kotlin,发现了一些不错的小技巧,所以下面这篇文章主要给大家介绍了关于利用kotlin实现统计文件字符个数的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-12-12
  • Android实现流光和光影移动效果代码

    Android实现流光和光影移动效果代码

    大家好,本篇文章主要讲的是Android实现流光和光影移动效果代码,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Android实现ListView控件的多选和全选功能实例

    Android实现ListView控件的多选和全选功能实例

    这篇文章主要介绍了Android实现ListView控件的多选和全选功能,结合实例形式分析了ListView控件多选及全选功能的布局与功能实现技巧,需要的朋友可以参考下
    2017-07-07
  • android开发实现文件读写

    android开发实现文件读写

    这篇文章主要为大家详细介绍了android开发实现文件读写,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • Android使用OkHttp进行重定向拦截处理的方法

    Android使用OkHttp进行重定向拦截处理的方法

    这篇文章主要介绍了Android使用OkHttp进行重定向拦截处理的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 你必须掌握在Flutter中添加资源文件的方法

    你必须掌握在Flutter中添加资源文件的方法

    这篇文章主要介绍了你必须掌握在Flutter中添加资源文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • Android编程实现的简易路径导航条功能示例

    Android编程实现的简易路径导航条功能示例

    这篇文章主要介绍了Android编程实现的简易路径导航条功能,结合实例形式分析了Android结合视图、布局及路径操作实现导航条功能的相关技巧,需要的朋友可以参考下
    2017-01-01
  • Android ScrollView取消惯性滚动的方法

    Android ScrollView取消惯性滚动的方法

    下面小编就为大家带来一篇Android ScrollView取消惯性滚动的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Android 自定义SurfaceView详解

    Android 自定义SurfaceView详解

    本文主要介绍Android SurfaceView自定义方法,这里对SurfaceView的基础知识做了详解,并附简单的示例代码,以便参考,有需要的小伙伴可以参考下
    2016-08-08

最新评论