android 点击文本框 不调用键盘,Android点击EditText文本框之外任何地方隐藏键盘
发布日期:2022-02-21 12:50:39 浏览次数:16 分类:技术文章

本文共 1063 字,大约阅读时间需要 3 分钟。

在BaseActivity中重写dispatchTouchEvent方法

/**

* 点击外部,使EditText隐藏

*

* @param ev

* @return

*/

@Override

public boolean dispatchTouchEvent(MotionEvent ev) {

if (ev.getAction() == MotionEvent.ACTION_DOWN) {

View v = getCurrentFocus();

if (isShouldHideInput(v, ev)) {

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

if (imm != null) {

imm.hideSoftInputFromWindow(v.getWindowToken(), 0);

}

}

return super.dispatchTouchEvent(ev);

}

// 必不可少,否则所有的组件都不会有TouchEvent了

if (getWindow().superDispatchTouchEvent(ev)) {

return true;

}

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

}

转载地址:https://blog.csdn.net/weixin_33958381/article/details/117495955 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:荣耀电视鸿蒙系统安卓,刚刚!继发布或取代安卓的华为鸿蒙系统后,荣耀“电视”也来了...
下一篇:android 设置网络参数,Android网络请求-sign参数的设置方式

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2023年05月22日 14时19分38秒