原理图:
代码实现
public class CyclerViewPager extends ViewPager {
public CyclerViewPager(Context context) {
super(context);
}
public CyclerViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void addOnPageChangeListener(OnPageChangeListener listener) {
MyPageChangeListener myPageChangeListener = new MyPageChangeListener(listener);
super.addOnPageChangeListener(myPageChangeListener);
}
@Override
public void setAdapter(PagerAdapter adapter) {
// 修正 adapter 中position
MyAdapter myAdapter = new MyAdapter(adapter);
addOnPageChangeListener(null); //手动增加一个监听
super.setAdapter(myAdapter);
setCurrentItem(1);
//开启自动轮播
startScroll();//自动轮播
}
@Override