禁用ViewPager边界滑动效果

来源:互联网 发布:三年工作经验的程序员 编辑:程序博客网 时间:2024/06/06 04:37

反射设置方法

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()方法

0 0
原创粉丝点击