禁用ViewPager边界滑动效果(转)

反射设置方法

 private EdgeEffectCompat leftEdge;
private EdgeEffectCompat rightEdge;
public void DisableLRScroll(){
try {
Field leftEdgeField = viewPager.getClass().getDeclaredField("mLeftEdge");
Field rightEdgeField = viewPager.getClass().getDeclaredField("mRightEdge");
if(leftEdgeField != null && rightEdgeField != null){
leftEdgeField.setAccessible(true);
rightEdgeField.setAccessible(true);
leftEdge = (EdgeEffectCompat) leftEdgeField.get(viewPager);
rightEdge = (EdgeEffectCompat) rightEdgeField.get(viewPager);
}
} catch (Exception e) {
e.printStackTrace();
}
}

在viewPager的监听事件的onPageScrolled方法中做处理

if(leftEdge != null && rightEdge != null) {
leftEdge.finish();
rightEdge.finish();
leftEdge.setSize(0, 0);
rightEdge.setSize(0, 0);
}

记得在onCreate方法中执行DisableLRScroll()方法

上一篇:把docker当做绿色打包工具


下一篇:github里的gist是什么意思