栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

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

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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; 
  } 

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/158405.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号