今天的工作中,遇到一个需求,就是禁止了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 }
第二个方法,完美解决了,但是我认为第一个方法也不错,值得学习。
希望对大家工作学习有帮助。
时间: 2024-10-14 22:15:53