美文网首页
2020-03-26 Viewpager+fragment无限循

2020-03-26 Viewpager+fragment无限循

作者: 王培921223 | 来源:发表于2020-03-26 16:26 被阅读0次

1、viewPager的适配器 getCount() 方法返回Integer.max; getItem() 方法 返回 list.get(position%list.size());

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.

}

}

相关文章

网友评论

      本文标题:2020-03-26 Viewpager+fragment无限循

      本文链接:https://www.haomeiwen.com/subject/olftictx.html