나는 linearLayout을 확장하는 사용자 정의 ViewGroup이 있으며이보기 그룹에는 자식 뷰인 gridView가 있습니다. mGridView가 호출되고 실행 된 mGridView.onClickListener를 클릭하지만 내 사용자 정의보기 그룹 (onTouchEvent()가 실행 됨)에서 다른 터치 이벤트 (예 : mGridView 이동)를 처리하는 경우를 원합니다. 결코 호출되지부모보기에서 터치 처리하지만 자식에서 핸들 이벤트 처리
@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() : 그래서 내가 onInterceptTouchEvent를 ovveride.
감사합니다. 어떤 동작이 올바른지 == MotionEvent.ACTION_DOWNaction == MotionEvent.ACTION_MOVE? – mk72
클릭이 감지 되려면 몇 가지 작업이 함께 그룹화됩니다. 먼저 ACTION_CANCEL 다음 ACTION_UP을 제외한보기 범위 내의 모든 ACTION_DOWN 작업을 수행합니다. ACTION_UP에 ACTION_DOWN을 지정하면 클릭이 감지되고 OnClickListener가 작동한다고 생각합니다. –