- 不可滑动
- 去除了切换动画效果
- 解决了百度地图的滑动冲突
去除 viewpager 滑动到尽头时的阴影效果
android:overScrollMode=“never”
/**
* 不可滑动的 viewpager
*/
public class NoScrollViewPager extends ViewPager {
private boolean isCanScroll = false;
public NoScrollViewPager(Context context) {
super(context);
}
public NoScrollViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
* 设置其是否能滑动换页
*
* @param isCanScroll false 不能换页, true 可以滑动换页
*/
public void setScanScroll(boolean isCanScroll) {
this.isCanScroll = isCanScroll;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return isCanScroll && super.onInterceptTouchEvent(ev);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
return isCanScroll && super.onTouchEvent(ev);
}
/**
* 去除页面切换时的滑动翻页效果
*
* @param item
*/
@Override
public void setCurrentItem(int item) {
super.setCurrentItem(item, false);
}
/**
* 去除页面切换时的滑动翻页效果
*
* @param item
* @param smoothScroll
*/
@Override
public void setCurrentItem(int item, boolean smoothScroll) {
super.setCurrentItem(item, smoothScroll);
}
/**
* 解决viewPager与百度地图滑动冲突
*
* @param v
* @param checkV
* @param dx
* @param x
* @param y
* @return
*/
@Override
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
if (v.getClass().getName().equals("com.baidu.mapapi.map.MapView")) {
return true;
}
//if(v instanceof MapView){
// return true;
//}
return super.canScroll(v, checkV, dx, x, y);
}
}