Хорошо для тех, кто хочет знать, что я сделал ... я не мог. Я сделал обходной путь, чтобы просто узнать, был ли выбран конкретный компонент представления, поэтому я мог закончить только этим:
if(isPointInsideView(ev.getRawX(), ev.getRawY(), myViewComponent)){
doSomething()
}
и метод:
/**
* Determines if given points are inside view
* @param x - x coordinate of point
* @param y - y coordinate of point
* @param view - view object to compare
* @return true if the points are within view bounds, false otherwise
*/
public static boolean isPointInsideView(float x, float y, View view){
int location[] = new int[2];
view.getLocationOnScreen(location);
int viewX = location[0];
int viewY = location[1];
//point is inside view bounds
if(( x > viewX && x < (viewX + view.getWidth())) &&
( y > viewY && y < (viewY + view.getHeight()))){
return true;
} else {
return false;
}
}
Однако это работает только для известных видов в макете, которые вы можете передать в качестве параметра, но я все еще не могу получить вид с щелчком, просто зная координаты. Вы можете искать все виды в макете, хотя.