如何检测触摸事件是否已落入EditText?

时间:2012-07-06 23:04:03

标签: android

我可以找到getX(),而getY()都返回一个浮点数。但是,如何检测TouchEvent e.get(),e.​​getY()的坐标是否在EditText UI元素的边界内?我注意到getX()和getY()是浮点数,但getHeight()和getWidth()都是int。不会帮助比较...

1 个答案:

答案 0 :(得分:30)

你到底想做什么?如果您只想检测是否触摸了EditText,请将OnTouchListener添加到EditText ...甚至OnClickListener。

编辑:如果要在外部检测,可以在包含视图中检测触摸事件,然后,假设您有EditText视图:

Rect editTextRect = new Rect();
myEditText.getHitRect(editTextRect);

if (!editTextRect.contains((int)event.getX(), (int)event.getY())) {
    Log.d("test", "touch not inside myEditText");
}

或者您向EditText和容器添加一个触摸侦听器,并在其中一个EditText中返回false,这样它就会被拦截而不会转发给父级。因此,您在父级侦听器中检测到的所有触摸都不属于EditText。

相关问题