2012-09-01 3 views
5

뷰 페이지가 한 방향으로 만 스크롤되는 것을 어떻게 중지시킬 수 있습니까? 예를 들어 오른쪽으로 만 스 와이프를 허용하고 왼쪽으로는 스 와이프를 허용하지 않습니다. 나는 절대적으로 막혔다. 어떤 도움이라도 대단히 감사 할 것이다. 이것을 Android 버전 2.2에서 작동하도록해야하므로 ViewPager에 compatibilty 라이브러리를 사용하고 있습니다. 당신은 원래 ViewPager를 확장 자신의 ViewPager을하고 onTouchEvent 방법보기 페이지 특정 방향으로 스 와이프 중지

public class CustomViewPager extends ViewPager { 

    float lastX = 0; 

    boolean lockScroll = false; 

    public CustomViewPager(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public CustomViewPager(Context context) { 
     super(context); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent ev) { 

     switch (ev.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      lastX = ev.getX(); 
      lockScroll = false; 
      return super.onTouchEvent(ev); 
     case MotionEvent.ACTION_MOVE: 

      if (lastX > ev.getX()) { 
       lockScroll = false; 
      } else { 
       lockScroll = true; 
      } 

      lastX = ev.getX(); 
      break; 
     } 

     lastX = ev.getX(); 

     if(lockScroll) { 
      return false; 
     } else { 
      return super.onTouchEvent(ev); 
     } 

    } 



} 

답변

6

사전

에서

덕분에 - 불행하게도,이 작동하지 않습니다. 나는 심지어 onTouchEvent 이벤트를 시도했지만 아아, 기쁨은 없습니다.

+0

안녕 알리를 재정의해야합니다 –

+0

또 다른 속임수, 다음보기로 스크롤 할 때 첫 번째 것을 삭제하십시오. 몇 분 후에 업데이트하겠습니다. –

+1

답변을 업데이트하고 새 코드를 테스트 한 결과 효과가있었습니다. –