Android中点击隐藏软键盘最佳方法

Android中点击隐藏软键盘最佳方法,第1张

概述实现功能:点击EditText,软键盘出现并且不会隐藏,点击或者触摸EditText以外的其他任何区域,软键盘被隐藏;

实现功能:点击EditText,软键盘出现并且不会隐藏,点击或者触摸EditText以外的其他任何区域,软键盘被隐藏;

1、重写dispatchtouchEvent()方法,获取当前触摸事件为DOWN的时候隐藏软键盘

@OverrIDe  public boolean dispatchtouchEvent(MotionEvent ev) {    //Finger touch screen event    if (ev.getAction() == MotionEvent.ACTION_DOWN) {      // get current focus,Generally it is EditText      VIEw vIEw = getCurrentFocus();      if (isShouldHIDeSoftKeyBoard(vIEw,ev)) {        hIDeSoftKeyBoard(vIEw.getwindowToken());      }    }    return super.dispatchtouchEvent(ev);  }

2、isShouldHIDeinput()方法;

/**   * Judge what situation hIDe the soft keyboard,click EditText vIEw should show soft keyboard   * @param v IncIDent event   * @param event    * @return   */  private boolean isShouldHIDeSoftKeyBoard(VIEw vIEw,MotionEvent event) {    if (vIEw != null && (vIEw instanceof EditText)) {      int[] l = { 0,0 };      vIEw.getLocationInWindow(l);      int left = l[0],top = l[1],bottom = top +vIEw.getHeight(),right = left          + vIEw.getWIDth();      if (event.getX() > left && event.getX() < right          && event.getY() > top && event.getY() < bottom) {        // If click the EditText event,ignore it        return false;      } else {        return true;      }    }    // if the focus is EditText,ignore it;     return false;  }

3、hIDeSoftKeyBoard()方法;

/**   * hIDe soft keyboard   * @param token   */  private voID hIDeSoftKeyBoard(IBinder token) {    if (token != null) {      inputMethodManager im = (inputMethodManager) getSystemService(Context.input_METHOD_SERVICE);      im.hIDeSoftinputFromWindow(token,inputMethodManager.HIDE_NOT_ALWAYS);    }  }

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程小技巧!

总结

以上是内存溢出为你收集整理的Android中点击隐藏软键盘最佳方法全部内容,希望文章能够帮你解决Android中点击隐藏软键盘最佳方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1147097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存