這個在 巧解ViewPager滑動衝突一文中已有更好的方案,大家可以參考一下。
在使用ViewPagerIndicator時,有時我們並不希望ViewPager可滑動,或者在ViewPagerIndicator中一個ViewPager中又嵌入了一個ViewPagerIndicator,這時我們可能只希望內嵌的待指示器的標籤頁可以滑動,而外層只是點擊切換即可,這時就需要控制ViewPager的滑動監聽,重寫自定義ViewPager,代碼如下:
package com.viewpagerindicator;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
/**
* 控制ViewPager滑動
*
* @author malong
*
*/
public class CustomScrollViewPager extends ViewPager {
private boolean isCanScroll = false;
public CustomScrollViewPager(Context context) {
super(context);
}
public CustomScrollViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
if (isCanScroll) {
return super.onInterceptTouchEvent(arg0);
} else {
return false;
}
}
@Override
public boolean onTouchEvent(MotionEvent arg0) {
if (isCanScroll) {
return super.onTouchEvent(arg0);
} else {
return false;
}
}
public boolean isCanScroll() {
return isCanScroll;
}
public void setCanScroll(boolean isCanScroll) {
this.isCanScroll = isCanScroll;
}
}