您的位置:首页 > 其它

控制ViewPager的滑动功能的开关

2017-12-07 15:12 459 查看

代码很简单,注释很详细,直接贴代码,省心又省力。

package com.hjk.shiny.weshop.overwrite;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

/**
* Created by Maibenben on 2017/12/7.
*/

public class CustomViewPager extends ViewPager{

//滑动开关控制常量
private boolean enable=false;

//重写构造
public CustomViewPager(Context context){
super(context);
}
//重写构造
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}

//触碰事件
@Override
public boolean onTouchEvent(MotionEvent ev) {

if(this.enable){
//开关打开,事件不进行拦截
return super.onTouchEvent(ev);
}

//默认拦截状态
return false;
}

//拦截事件监听
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {

if(this.enable){
//开关打开,即处理拦截下来的touch事件
return super.onInterceptTouchEvent(ev);
}

//默认状态不处理来接下来的事件
return false ;
}

//传递触摸事件
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {

//处理事件的分发,将拦截到的事件分发到viewpager下的子view中去
//这个拦截了就没有后续事件发生了,到viewpager为止

//可以拦
if(this.enable){
return super.dispatchTouchEvent(ev);
}

//一般都不拦的
return super.dispatchTouchEvent(ev);
}

//留一个方法修改开关的开启关闭状态
public boolean setViewPagerState(Boolean b){
this.enable=b;

return this.enable;
}
}


到此为止,多谢阅读!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: