Как получить базовое представление из MotionEvent?

Мой класс GestureListener получает событие MotionEvent в таких методах, как onSingleTap () или onFling (). Есть ли способ определить базовое представление из этого события?

Справочная информация: У меня есть LinearLayout, который содержит множество дочерних представлений. Этот LinearLayout имеет прослушиватель касаний, который вызывает детектор жестов. Поэтому, когда пользователь делает жест в любом дочернем представлении, LinearLayout ' Детектор жестов получает событие MotionEvent. Но проблема в том, что из-за того, что детей много, мне нужно точно знать, к какому дочернему элементу подключился пользователь. Но я не могу найти метод, который преобразует координату в представление. Есть ли способ сделать это?

Уродливое решение: дочерние элементы добавляются динамически. Таким образом, я могу сохранить всех дочерних элементов в списке, а затем, когда появится MotionEvent, я могу перебрать список и посмотреть, находится ли точка внутри дочернего элемента. Но мне эта идея не нравится. Есть ли способ лучше?

10
задан Benjamin 3 November 2013 в 20:56
поделиться