Android开发中ViewPager用到的频率还是比较频繁的,我们知道ViewPager有左右滑动的监听事件。有时候我们不想使用它的左右滑动监听,想要去掉,我们该怎么办?这时候我们布局的时候不要直接用v4包下面的ViewPager,而是实现新建自己的ViewPager继承v4下面的ViewPager,复写onTouchEvent和onInterceptTouchEvent方法。这两个方法主要是用来控制是否接收滑动监听事件的。如果返回false就不接收滑动监听事件。下面直接看代码
package com.glinkus.icare.ui;
import android.annotation.SuppressLint;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
/**
* @author syz
* @date 2016-7-5
*/
public class MainViewPager extends ViewPager{
/**是否禁止左右滑动,true为禁止,false为不禁止*/
private boolean noScroll = true;
public MainViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MainViewPager(Context context) {
super(context);
}
public void setNoScroll(boolean noScroll) {
this.noScroll = noScroll;
}
@Override
public void scrollTo(int x, int y) {
super.scrollTo(x, y);
}
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouchEvent(MotionEvent arg0) {
if (noScroll)
return false;
else
return super.onTouchEvent(arg0);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
if (noScroll)
return false;
else
return super.onInterceptTouchEvent(arg0);
}
@Override
public void setCurrentItem(int item, boolean smoothScroll) {
super.setCurrentItem(item, smoothScroll);
}
@Override
public void setCurrentItem(int item) {
super.setCurrentItem(item);
}
}