禁止ViewPager的左右滑动事件

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);  
    }


}


你可能感兴趣的:(Android,Android技术探索)