判断一个点击动作,是否在指定视图范围内方法:
/**
* 是否点击的是提示视图范围内
*
* @param view 要判断的视图
* @param ev 点击的Down事件
*/
private boolean inRangeOfBindView(View view, MotionEvent ev) {
int[] location = new int[2];
view.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
return !(ev.getX() < x) && !(ev.getX() > (x + view.getWidth())) && !(ev.getY() < y) && !(ev.getY() > (y + view.getHeight()));
}
重写事件处理方法
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
View view = getCurrentFocus();
if (isHideInput(view, event)) {
barEditText.postDelayed(() -> {
barEditText.needClearFocus();
KeyboardUtil.hideInputMethod(barEditText);
}, 100);
}
}
return super.dispatchTouchEvent(event);
}

本文介绍了一种在Android开发中判断点击事件是否发生在特定视图范围内的方法,通过获取视图在屏幕上的位置和尺寸,结合MotionEvent的坐标,实现精准的点击事件过滤。
547

被折叠的 条评论
为什么被折叠?



