最靠谱的禁止ViewPager滑动方法

今天的工作中,遇到一个需求,就是禁止了viewpager的滑动效果。但是我的viewpager里面嵌套了scrollview。并且里面有seekbar,还有edittext,虽然我刚开始直接将viewpager的onTounchEvent返回false。但是发现表面上确实禁止了滑动。但是在scrollview这个页面可以很明显的发现,左右滑动的时候,viewpager还是会响应。

 

查了很多资料以后解决了问题。

 

方法1.如下代码:
 1 //    @Override
 2 //    public boolean onTouchEvent(MotionEvent ev) {
 3 //        return false;
 4 //    }
 5 
 6 //    private boolean isCanScroll = true;
 7    
 8 
 9 //    public void setScanScroll(boolean isCanScroll){
10 //        this.isCanScroll = isCanScroll;
11 //    }
12 //    @Override
13 //    public void scrollTo(int x, int y){
14 //        if (isCanScroll){
15 //            super.scrollTo(x, y);
16 //        }
17 //    }

方法2.如下代码:

 1  private boolean isPagingEnabled = false;
 2     @Override
 3     public boolean onTouchEvent(MotionEvent event) {
 4         return this.isPagingEnabled && super.onTouchEvent(event);
 5     }
 6 
 7     @Override
 8     public boolean onInterceptTouchEvent(MotionEvent event) {
 9         return this.isPagingEnabled && super.onInterceptTouchEvent(event);
10     }
11 
12     public void setPagingEnabled(boolean b) {
13         this.isPagingEnabled = b;
14     }

第二个方法,完美解决了,但是我认为第一个方法也不错,值得学习。

希望对大家工作学习有帮助。

 


posted @ 2015-09-16 17:54  百晓生  阅读(6359)  评论(0编辑  收藏  举报