设置ViewPager 自动滑动时间,速度 方便展示动画


ViewPager.setCurrentItem(position),即使已设置动画,但是没有动画效果

原因:因为ViewPager滑动之前的时间间隔太短,可以通过反射,去修改ViewPager自动滑动时间, 这样修改不会影响手动滑动时间


通过反射重新为ViewPager设置Scroller

private void setViewPagerScroller() {

try {
Field scrollerField = ViewPager.class.getDeclaredField("mScroller");
scrollerField.setAccessible(true);
Field interpolator = ViewPager.class.getDeclaredField("sInterpolator");
interpolator.setAccessible(true);

Scroller scroller = new Scroller(this, (Interpolator) interpolator.get(null)) {
@Override
public void startScroll(int startX, int startY, int dx, int dy, int duration) {
super.startScroll(startX, startY, dx, dy, duration * 7); // 这里是关键,将duration变长或变短
}
};
scrollerField.set(viewPager, scroller);
} catch (NoSuchFieldException e) {
// Do nothing.
} catch (IllegalAccessException e) {
// Do nothing.
}
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM