마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ViewPager 관련 문의입니다.

0 추천
ViewPager를 사용하고 있는데요.

특정 페이지에서 swipe해서 페이지 이동하는걸 막고 싶은데 어떻게 해야할지 모르겠습니다.

어떤식으로 처리를 해야 할까요??;;
볼링공이에요 (1,320 포인트) 님이 2015년 3월 18일 질문

1개의 답변

0 추천
 
채택된 답변

제가 사용하고 있는 코드인데요

public class FreezableViewPager extends ViewPager {
	
	public boolean melted;

	public FreezableViewPager(Context context) {
		super(context);
		freeze();
	}

	public FreezableViewPager(Context context, AttributeSet attrs) {
		super(context, attrs);
		freeze();
	}
	
	@SuppressLint("ClickableViewAccessibility")
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		try {
			if (melted) {
				return super.onTouchEvent(event);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}
	
	@Override
	public boolean onInterceptTouchEvent(MotionEvent event) {
		if (melted) {
			return super.onInterceptTouchEvent(event);
		}
		return false;
	}

	public void freeze() {
		melted = false;
	}
	
	public void melt() {
		melted = true;
	}

}

로 custom viewpager 를 만드시고

setOnPageChangeListener 에 onPageSelected 에 

swipe 를 막고 싶은 페이지에서

public void onPageSelected(int position) {

    if (position == NO_SWIPE_PAGE) {

        viewPager.freeze();

    } else {

        viewPager.melt();

    }

}

 

정도로 하시면 되겠네요

mamondebaltob (32,750 포인트) 님이 2015년 3월 18일 답변
볼링공이에요님이 2015년 3월 20일 채택됨
뷰페이저 사용중입니다.
...