解决方案 »

  1.   

    我之前的问题描述的不清晰,其实我的问题是使用viewpager时每次滑动到最后一屏或者第一屏,再往边缘滑动时就会出展一个颜色渐变的效果,我其实就是想把那个效果禁止掉已经从网上找到解决办法了,发出来分享一下
    在自定义的OnPageChangeListener里面,先定义一下:     private EdgeEffectCompat leftEdge;
        
         private EdgeEffectCompat rightEdge;然后在构造方法中,通过反射机制得到对象:     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();
         }最后,在onPageScrolled方法中写入以下代码: if(leftEdge != null && rightEdge != null) {
                leftEdge.finish();
                rightEdge.finish();
                leftEdge.setSize(0, 0);
                rightEdge.setSize(0, 0);
            }