您的位置:首页 > 移动开发 > Android开发

android 只修改ViewPager调用setCurrentItem时,滑屏的速度,其他正常

2017-06-28 08:47 645 查看
[java] view
plain copy

 public class FixedSpeedScroller extends Scroller{  

    private int mDuration = 0;    

        

    public FixedSpeedScroller(Context context) {    

        super(context);    

    }    

    

    public FixedSpeedScroller(Context context, android.view.animation.Interpolator interpolator) {    

        super(context,interpolator);    

    }    

    

    public FixedSpeedScroller(Context context, android.view.animation.Interpolator interpolator, boolean flywheel) {    

        super(context, interpolator, flywheel);      

    }    

     

    @Override    

    public void startScroll(int startX, int startY, int dx, int dy, int duration) {    

          

        if(duration == 200)//调用setCurrentItem滑动的固定速度  

          super.startScroll(startX, startY, dx, dy, mDuration);    

        else //其他按照正常速度来  

         super.startScroll(startX, startY, dx, dy, duration);     

    }    

    

  

    @Override    

    public void startScroll(int startX, int startY, int dx, int dy) {    

        super.startScroll(startX, startY, dx, dy, mDuration);    

    }    

}  

应用

[java] view
plain copy

private void setViewPagerScrollSpeed(){    

        try {    

            Field mScroller = null;    

            mScroller = ViewPager.class.getDeclaredField("mScroller");    

            mScroller.setAccessible(true);     

            FixedSpeedScroller scroller = new FixedSpeedScroller( myviewpage.getContext( ) );    

            mScroller.set( myviewpage, scroller);                

        }catch(NoSuchFieldException e){    

                

        }catch (IllegalArgumentException e){    

                

        }catch (IllegalAccessException e){    

                

        }    

    }

[java] view
plain copy

 public class FixedSpeedScroller extends Scroller{  

    private int mDuration = 0;    

        

    public FixedSpeedScroller(Context context) {    

        super(context);    

    }    

    

    public FixedSpeedScroller(Context context, android.view.animation.Interpolator interpolator) {    

        super(context,interpolator);    

    }    

    

    public FixedSpeedScroller(Context context, android.view.animation.Interpolator interpolator, boolean flywheel) {    

        super(context, interpolator, flywheel);      

    }    

     

    @Override    

    public void startScroll(int startX, int startY, int dx, int dy, int duration) {    

          

        if(duration == 200)//调用setCurrentItem滑动的固定速度  

          super.startScroll(startX, startY, dx, dy, mDuration);    

        else //其他按照正常速度来  

         super.startScroll(startX, startY, dx, dy, duration);     

    }    

    

  

    @Override    

    public void startScroll(int startX, int startY, int dx, int dy) {    

        super.startScroll(startX, startY, dx, dy, mDuration);    

    }    

}  

应用

[java] view
plain copy

private void setViewPagerScrollSpeed(){    

        try {    

            Field mScroller = null;    

            mScroller = ViewPager.class.getDeclaredField("mScroller");    

            mScroller.setAccessible(true);     

            FixedSpeedScroller scroller = new FixedSpeedScroller( myviewpage.getContext( ) );    

            mScroller.set( myviewpage, scroller);                

        }catch(NoSuchFieldException e){    

                

        }catch (IllegalArgumentException e){    

                

        }catch (IllegalAccessException e){    

                

        }    

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: