2013-09-25 4 views
0

두 개의 gridview가있는 사용자 정의 선형 배치가 있습니다. 완전한 선형 레이아웃에서 멀티 터치를 원합니다. 즉, 첫 번째 터치는 하나의 gridview에있을 수 있고 두 번째 터치는 다른 gridview에있을 수 있으며 선형 레이아웃은이 (ACTION_DOWN 및 ACTION_POINTER_DOWN)에 대한 멀티 터치 이벤트를 가져올 수 있어야합니다. 내 사용자 정의 레이아웃에서 onInterceptTouchEvent를 재정 의하여이 문제를 해결할 수 있습니다. 필요하다면 gridview를 독립적으로 스크롤하기를 원합니다. gridview는 스크롤 가능한보기이지만, 'down'이벤트를 가로 채기 때문에 그렇게 할 수 없습니다. 스크롤하려고하면 'ACTION_DOWN'과 'ACTION_MOVE'라는 두 가지 이벤트가 생성됩니다. 멀티 터치 사용을 위해 ACTION_DOWN이 필요하기 때문에 linearlayout으로 보내주기를 원합니다.맞춤 선형 레이아웃에서 자식보기로 이벤트를 보내는 방법

이 경우 gridview 인 선형보기와 자식보기 모두에 ACTION_DOWN 이벤트를 보낼 수 있습니까?

도움이 필요합니다.

답변

0

인터셉터ACTION_DOWN을 컨테이너보기로 통과했는지 모니터링 할 필요는 없습니다. 즉, onInterceptTouchEvent()을 오버라이드하여 프레임 워크가 해당 하위 뷰에 전달하기 전에 터치 이벤트를 모니터링 할 수 있지만 반환 값에 맞지 않는 한 실제로는 이후 터치 이벤트를 도용하지 않습니다. 그리드 요소. 예를 들어 :

public boolean onInterceptTouchEvent (MotionEvent ev) 
    if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) { 
     //Touchdown! 
    } 

    //Don't modify this and touch interaction will happen normally 
    return super.onInterceptTouchEvent(ev); 
} 

이것은 당신이 자식 요소 (들)에서 멀리 그것을 복용하지 않고도 이벤트를 볼 수 있습니다.