zhpanvip / BannerViewPager

🚀 An awesome banner view for Android,Based on ViewPager2. 这可能是全网最好用的ViewPager轮播图。简单、高效,一行代码实现循环轮播,一屏三页任意变,指示器样式任你挑。
Apache License 2.0
3.54k stars 434 forks source link

当传入datalist的size=2的时候,使用setCurrentItem滑动方向会出现异常 #298

Closed SunShineOrangeJuice closed 1 year ago

SunShineOrangeJuice commented 1 year ago

if (item == 0 && realPosition == pageSize - 1) { mViewPager.setCurrentItem(currentItem + 1, smoothScroll); } else if (realPosition == 0 && item == pageSize - 1) { //size=2只会走这个判断 mViewPager.setCurrentItem(currentItem - 1, smoothScroll); } else { mViewPager.setCurrentItem(currentItem + (item - realPosition), smoothScroll); } 具体表现为setCurrentItem(1)时,banner会从0的左边划入,正常的情况需要从右边划入

zhpanvip commented 1 year ago

这个bug跟 #252 应该是同一个问题,可以跟踪 #252 ,这里先关掉了,

zhpanvip commented 1 year ago

你这里使用场景是不是需要点击某个Item的时候自动滚动到这个Item来呢?如果是这样的场景,我可以加一个setOnPageClickListener(OnPageClickListener onPageClickListener, boolean scrollToThisItem),第二个参数传个true进来就可以了。

setCurrentItem的这种方案目前是解决不了这个问题的

zhpanvip commented 1 year ago

问题已修复,使用方式可以参考最新代码的Demo

SunShineOrangeJuice commented 1 year ago

版本更新至3.5.10后问题已解决,感谢~!