一句话不割。
源代码:
adpater = new MyPagerAdapter(getSupportFragmentManager());
viewpager = (ViewPager) findViewById(R.id.pager);
viewpager.setAdapter(adpater);
indicator = (LoopCirclePageIndicator) findViewById(R.id.yIndicator1);
indicator.setViewPager(viewpager,Config.Image_Flip_Start * size);
如果发生跳动行为,那是因为:indicator.setViewPager(viewpager,Config.Image_Flip_Start * size),因为要无限循环(假循环,其实可滑到底),所以后面那个参数是设置viewpager的当前页,让其显示当前页为几百页,进入indicator类里面找到该方法
代码:
@Override
public void setViewPager(ViewPager view, int initialPosition) {
setViewPager(view);
setCurrentItem(initialPosition);
}
setCurrentItem(initialPosition)里面有个mViewPager.setCurrentItem(item);,这里设置mViewPager的当前页,默认有滑动效果,将其改为:mViewPager.setCurrentItem(item,false)即可,这样viewpager没有滑动效果,indicator也就没有跳动情况发生了;
代码:
@Override
public void setCurrentItem(int item) {
if (mViewPager == null) {
throw new IllegalStateException("ViewPager has not been bound.");
}
mViewPager.setCurrentItem(item);
mCurrentPage = item;
invalidate();
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。