ViewPager의 스크롤 제어
ViewPager는 좌우 스와이프를 통해 화면을 넘길 수 있다.
하지만 상황에 따라서는 이 기능을 사용하지 않기를 원할수도 있는데 이때는 다음과 같이 하면 된다.
간단한 해결방법으로는 ViewPager의 SubClass를 생성한다.
그리고 그 Class안에 flag를 하나 둔다.
그리고 단 다음에 onTouchEvent와 onInterceptTouchEvent를 오버라이드 한다.
코드로 살펴보면 다음과 같다.
하지만 상황에 따라서는 이 기능을 사용하지 않기를 원할수도 있는데 이때는 다음과 같이 하면 된다.
간단한 해결방법으로는 ViewPager의 SubClass를 생성한다.
그리고 그 Class안에 flag를 하나 둔다.
그리고 단 다음에 onTouchEvent와 onInterceptTouchEvent를 오버라이드 한다.
코드로 살펴보면 다음과 같다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class CustomViewPager extends ViewPager { | |
private boolean isPageScrollEnabled = true; | |
public CustomViewPager(Context context) { | |
super(context); | |
} | |
public CustomViewPager(Context context, AttributeSet attrs) { | |
super(context, attrs); | |
} | |
@Override | |
public boolean onTouchEvent(MotionEvent event) { | |
return this.isPageScrollEnabled && super.onTouchEvent(event); | |
} | |
@Override | |
public boolean onInterceptTouchEvent(MotionEvent event) { | |
return this.isPageScrollEnabled && super.onInterceptTouchEvent(event); | |
} | |
public void setPageScrollEnabled(boolean isPageScrollEnabled) { | |
this.isPageScrollEnabled = isPageScrollEnabled; | |
} | |
} |
그런다음 레이아웃 파일에 있는 <ViewPager> 테그를 방금 새로 정의한 <com.package.CustomViewPager> 테그로 변경한다.
참고: http://www.shiftedup.com/2011/08/29/disabling-pagingswiping-on-android
댓글
댓글 쓰기