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

viewpager 페이징 질문..

–1 추천
안녕하세요 안드로이드 초보 개발자입니다..

viewpager를 커스텀중인데요..

viewpager의 기본 페이징 좌우로 스크롤시 페이지가 넘어가는 이벤트를 혹시

막을수 있는 방법이 있나요? 이틀째 고민중인데;;

방법이 있거나 아시는분은 힌트좀 주세요 ㅠㅠ
mamongs (4,050 포인트) 님이 2013년 6월 25일 질문

1개의 답변

0 추천
    boolean flag = true;
    
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        if (flag) {
            return false;
        }

        return super.onInterceptTouchEvent(ev);
    }

Viewpager 를 상속 받은 후 onInterceptTouchEvent 를 override 하여  특정 이벤트시 flag 를 true 로 주면 됩니다. 

aucd29 (218,390 포인트) 님이 2013년 6월 25일 답변
이 소스를 많이 봣는데요..
어떤식으로 적용을 해야 하는질 잘모르겠습니다;
pageradapter처럼 클래스를 하나 생성한후.. pager에 적용해야되는건가요? 감이 오질 않아서 질문을 올렷습니다 ㅜㅜ
xml 구성
<클래스가 있는 위치.SmartViewPager xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" />

class 파일 생성
public class SmartViewPager extends ViewPager {
boolean flag = true;
    public SmartViewPager(Context context) {
        super(context);
    }

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

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
                if (flag) {
                    return false;
                }

        return super.onInterceptTouchEvent(ev);
    }
}
...