android禁止空间滑动,Android:禁止左右滑动的ViewPager

package com.sdr.datacollection.widget;

import android.content.Context;

import android.support.v4.view.ViewPager;

import android.util.AttributeSet;

import android.view.MotionEvent;

public class NoScrollViewPager extends ViewPager {

private boolean isScroll = false;

public NoScrollViewPager(Context context, AttributeSet attrs) {

super(context, attrs);

}

public NoScrollViewPager(Context context) {

super(context);

}

/**

* 1.dispatchTouchEvent一般情况不做处理

* ,如果修改了默认的返回值,子孩子都无法收到事件

*/

@Override

public boolean dispatchTouchEvent(MotionEvent ev) {

return super.dispatchTouchEvent(ev); // return true;不行

}

/**

* 是否拦截

* 拦截:会走到自己的onTouchEvent方法里面来

* 不拦截:事件传递给子孩子

*/

@Override

public boolean onInterceptTouchEvent(MotionEvent ev) {

// return false;//可行,不拦截事件,

// return true;//不行,孩子无法处理事件

//return super.onInterceptTouchEvent(ev);//不行,会有细微移动

if (isScroll) {

return super.onInterceptTouchEvent(ev);

} else {

return false;

}

}

/**

* 是否消费事件

* 消费:事件就结束

* 不消费:往父控件传

*/

@Override

public boolean onTouchEvent(MotionEvent ev) {

//return false;// 可行,不消费,传给父控件

//return true;// 可行,消费,拦截事件

//super.onTouchEvent(ev); //不行,

//虽然onInterceptTouchEvent中拦截了,

//但是如果viewpage里面子控件不是viewgroup,还是会调用这个方法.

if (isScroll) {

return super.onTouchEvent(ev);

} else {

return true;// 可行,消费,拦截事件

}

}

public void setScroll(boolean scroll) {

isScroll = scroll;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值