ViewPager에서 손가락으로 스와이핑 하는걸 못하게 하고싶어요.


제 앱에 ViewPager가 있고 거기에 버튼이 10개있는데요. 만약 버튼을 클릭하면 바로 mPager.setCurrentItem(3);으로 4번째 페이지로 가게하고싶어요. 근데 일단 손가락으로 페이지를 스와이핑하는걸 막고싶어요. 그냥 페이지에서는 버튼만 클릭되게하고싶은데 어떻게하면 좋을까요?

  • 2016년 01월 26일에 작성됨

조회수 352


1 답변


좋아요
0
싫어요
채택취소하기

일단 ViewPager의 하위 클래스가 필요합니다. onTouchEvent는 하위 뷰가 터치되는것을 막을 수 있고 onInterceptTouchEvent는 원하는대로 스와이핑이 안되게 막을수있습니다.

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

public class NonSwipeableViewPager extends ViewPager {

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

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

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        // 스와이핑되서 페이지가 바뀌는것을 막는다. 
        return false;
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        //스와이핑되서 페이가 바뀌는 것을 막는다. 
        return false;
    }
}

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close