У меня есть пользовательская группа ViewGroup, которая расширяет linearLayout, и эта группа представлений имеет gridView как дочерний. я хочу, чтобы mGridView щелкнул mGridView.onClickListener, вызванный и выполняемый, но обрабатывающий другие события касания (например, перемещение mGridView) в моем пользовательском представлении. Выполняется группа (onTouchEvent()). поэтому я ovveride onInterceptTouchEvent:Обращайтесь с дескриптором в родительском представлении, но обработайте событие Click в дочернем объекте
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
int action = ev.getAction();
int y = (int) ev.getY();
if(action == MotionEvent.ACTION_DOWN && y > mGridView.getTop()) //y > mGridView,getTop() checks if position of touch in mGridView Position or not.
return false;
return true;
}
но mGridView.OnClickListener() никогда не называется.
спасибо. что является правилом действия == MotionEvent.ACTION_DOWNaction == MotionEvent.ACTION_MOVE? – mk72
для обнаружения клика. Несколько действий сгруппированы. Сначала ACTION_DOWN, а затем любое действие внутри границ вашего вида, кроме ACTION_CANCEL, а затем ACTION_UP. Я думаю, что если вы разрешите ACTION_UP с ACTION_DOWN, ваш клик будет обнаружен, а OnClickListener будет работать –