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