안드로이드

안드로이드 VIewpager swipe disable Viewpager 스와이프 막기

알통몬_ 2019. 1. 29. 16:54
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 

안드로이드 ViewPager 의 좌우 swipe를 disable 하는 방법입니다.

Custom ViewPager 클래스가 필요합니다.

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

public class NonSwipeViewPager extends ViewPager {

public NonSwipeViewPager(@NonNull Context context) {
super(context);
}

public NonSwipeViewPager(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}

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

@Override
public boolean onTouchEvent(MotionEvent ev) {
return false;
}
}

onInterceptTouchEvent 와 onTouchEvent는 swipe 되어서 페이지가 바뀌는 걸

방지합니다.

override 해서 return을 둘 다 false로 주면 됩니다.

그리고 xml에서 ViewPager 대신에

<superbrain.rowan.com.rowancareadmin.NonSwipeViewPager
app:layout_constraintTop_toBottomOf="@+id/daysRecyclerView"
app:layout_constraintBottom_toTopOf="@+id/menuTab"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:id="@+id/menuPager"
android:layout_width="0dp"
android:layout_height="0dp"
android:gravity="center"/>

이렇게 사용해주면 됩니다.

이상입니다.



반응형