2012-12-30 3 views
3

Android ScrollView를 확장하는 사용자 정의보기가 있습니다. 직접 자식은 클릭 할 수있는 자식이있는 상대 레이아웃입니다. (I 수동으로 항목의 규모를 관리하는 것보다)안드로이드에서 ScaleView를 스크롤하는 것을 방지하는 방법으로 ScrollView를 스크롤링하고 자식 아이템을 클릭하는 것을 방지하는 방법?

  1. 스크롤 뷰 onScale 제스처를 감지 : 나는에 수 있어야합니다.
  2. ScrollView를 세로로 스크롤하십시오.
  3. 해당 하위 항목을 클릭 가능한 상태로 유지하십시오.

지금까지 IS (의사 코드) 시도하는 것 :

public class CustomView extends ScrollView { 
    @Override 
    public boolean onInterceptTouchEvent(MotionEvent ev) { 
     return super.onInterceptTouchEvent(ev) || mScaleDetector.onTouchEvent(ev); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent ev) { 
     return mScaleDetector.onTouchEvent(ev); 
    } 

    private class ScaleListener extends 
     ScaleGestureDetector.SimpleOnScaleGestureListener { 

      @Override 
      public boolean onScale(ScaleGestureDetector detector) { 
       // Handle the scale.. 
       return true; 
      } 
     } 
} 

나는 또한 onInterceptMethod에 대해 서로 다른 구성을 시도 같은 첫 번째 호출 슈퍼 등등에 돌아 가기 mScaleDetector.onTouchEvent하고있다.

스케일이나 클릭 및 스크롤은 가로 채기에 성공했지만 둘 다 가로 채는 데는 성공하지 못했습니다. 다니엘

답변

8

솔루션을 사용하는 것입니다

감사 :

 @Override 
    public boolean dispatchTouchEvent(MotionEvent ev){ 
     super.dispatchTouchEvent(ev);  
     return mScaleDetector.onTouchEvent(ev); 
    } 

되지는 onInterceptTouchEventonTouchEvent 방법을 우선합니다.