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中实现向左滑动删除效果了


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值