Android禁止ViewPager的左右滑动

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


public class My_ViewPager extends ViewPager {

        
    public My_ViewPager(Context context) {    
        super(context);    
    }    
        
    public My_ViewPager(Context context, AttributeSet attrs) {    
        super(context, attrs);    
    }    
    
        
    //拦截 TouchEvent     返回false 拦截    
    @Override    
    public boolean onInterceptTouchEvent(MotionEvent event) {    
        return false;    
    }    
        
    //处理 TouchEvent     
    @Override    
    public boolean onTouchEvent(MotionEvent event) {    
        // TODO Auto-generated method stub    
//        return super.onTouchEvent(arg0);    
    return false;  
    }    
        
    
    //因为这个执行的顺序是  父布局先得到 action_down的事件        
    /**  
     * onInterceptTouchEvent(MotionEvent ev)方法,这个方法只有ViewGroup类有  
     * 如LinearLayout,RelativeLayout等    可以包含子View的容器的  
     *  
     * 用来分发 TouchEvent  
     * 此方法    返回true    就交给本 View的 onTouchEvent处理  
     * 此方法    返回false   就交给本View的 onInterceptTouchEvent 处理  
     */    
    @Override    
    public boolean dispatchTouchEvent(MotionEvent ev) {  
        //让父类不拦截触摸事件就可以了。    
        this.getParent().requestDisallowInterceptTouchEvent(false);     
        return super.dispatchTouchEvent(ev);    
       
    } 

}


        使用这个自定义的viewpager完全可以实现禁止左右滑动效果,有效的防止与其他使用滑动事件地方发生冲突。完全可以复制直接使用不需要任何修改。

        主要是onInterceptTouchEvent和onTouchEvent事件中需要返回false,这样就禁止左右滑动了,不会影响到lisetview正常使用,上下滑动还是可以,这样就可以在listview中实现向左滑动删除效果了


阅读更多
文章标签: android viewpager
个人分类: android
上一篇Java 截取反斜杠--java使用split拆分特殊字符
下一篇xUtils工具实现下载功能
想对作者说点什么? 我来说一句

Viewpager+Fragment的实现及禁止滑动

2017年05月19日 21.26MB 下载

没有更多推荐了,返回首页

关闭
关闭