首页 > 其他 > 详细

设置ViewPager 滚动速度

时间:2017-02-08 11:32:41      阅读:202      评论:0      收藏:0      [点我收藏+]

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.
}
}

设置ViewPager 滚动速度

原文:http://www.cnblogs.com/wutianlong/p/6377364.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!