今天的工作中,遇到一個需求,就是禁止了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 }
第二個方法,完美解決了,但是我認為第一個方法也不錯,值得學習。
希望對大家工作學習有幫助。