禁用ViewPager边界滑动效果(转)
反射设置方法
1 private EdgeEffectCompat leftEdge; 2 private EdgeEffectCompat rightEdge; 3 public void DisableLRScroll(){ 4 try { 5 Field leftEdgeField = viewPager.getClass().getDeclaredField("mLeftEdge"); 6 Field rightEdgeField = viewPager.getClass().getDeclaredField("mRightEdge"); 7 if(leftEdgeField != null && rightEdgeField != null){ 8 leftEdgeField.setAccessible(true); 9 rightEdgeField.setAccessible(true); 10 leftEdge = (EdgeEffectCompat) leftEdgeField.get(viewPager); 11 rightEdge = (EdgeEffectCompat) rightEdgeField.get(viewPager); 12 } 13 } catch (Exception e) { 14 e.printStackTrace(); 15 } 16 }
在viewPager的监听事件的onPageScrolled方法中做处理
if(leftEdge != null && rightEdge != null) { leftEdge.finish(); rightEdge.finish(); leftEdge.setSize(0, 0); rightEdge.setSize(0, 0); }
记得在onCreate方法中执行DisableLRScroll()方法