viewpager中,如果用view作为她的数据,并且动态控制viewpager的滑动与否。而且View 中的子控件还有对应 的点击事件。可以用下边的代码。
在onInterceptTouchEvent()方法中,只是返回isSlide这个数据,会达到禁止左右滑动的效果,但是,view中的子控件的点击事件也会被屏蔽掉。
/**
* Created by zys on 2018/8/24.
*/
public class ViewPagerSlide extends ViewPager {
//是否可以进行滑动
private boolean isSlide = true;
public void setSlide(boolean slide) {
isSlide = slide;
}
public ViewPagerSlide(Context context) {
super(context);
}
public ViewPagerSlide(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (!isSlide) {
return isSlide;
} else {
return super.onInterceptTouchEvent(ev);
}
}
}