这个在 巧解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;
}
}