Miles' Blog

天涯何處無幹話,何必要講實務話

ViewPager

Cancel Swipe

有時候會因需求,而要把滑動功能關閉,不過 ViewPager 並沒有這樣的功能,所以只能繼承並改寫 Touch 相關事件。

public class CancelSwipeViewPager extends ViewPager
{
private boolean isPagingEnabled = true;

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

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

@Override
public boolean onTouchEvent(MotionEvent event)
{
if (this.isPagingEnabled) {
return super.onTouchEvent(event);
}

return false;
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (this.isPagingEnabled) {
return super.onInterceptTouchEvent(event);
}

return false;
}

public void setPagingEnabled(boolean b) {
this.isPagingEnabled = b;
}
}
0%