AutoScrollViewPager
AutoScrollViewPager copied to clipboard
android atuo scroll viewpager
Fatal Exception: java.lang.ArithmeticException divide by zero com.kcode.autoscrollviewpager.view.BaseViewPagerAdapter.onPageSelected (BaseViewPagerAdapter.java:174) androidx.viewpager.widget.ViewPager.dispatchOnPageSelected (ViewPager.java:1947) androidx.viewpager.widget.ViewPager.scrollToItem (ViewPager.java:686) androidx.viewpager.widget.ViewPager.setCurrentItemInternal (ViewPager.java:670) androidx.viewpager.widget.ViewPager.setCurrentItemInternal (ViewPager.java:631) androidx.viewpager.widget.ViewPager.setCurrentItem (ViewPager.java:612) com.kcode.autoscrollviewpager.view.AutoViewPager$1.run (AutoViewPager.java:69) android.os.Handler.handleCallback (Handler.java:789) android.os.Handler.dispatchMessage (Handler.java:98) android.os.Looper.loop (Looper.java:164) android.app.ActivityThread.main (ActivityThread.java:6938) java.lang.reflect.Method.invoke (Method.java)...
compile 'com.kcode.github:autoScrollViewPager:1.0.1' 这个路径是错的, compile 'com.github.fccaikai:autoScrollViewPager:1.0.1' 这个是正确的。
滑动异常的问题
Android ViewPager 有一个 bug,导致在做自动轮播图的时候如果选用了将 Adapter 设置为无限大的方案,向前滑动页面到一半时松手,页面不会回到滑动之前的页面,反倒会滑动到反方向,也就是滑动之前页面的前一页。 这个问题的原因是 ViewPager 在监听 Touch 的 UP 事件的时候,通过对当前页数 + 滑动完成度(已经滑动的距离与当前页面宽度的比)+ 一个补偿值实现的,如果设置了无限大的 Adapter,当前页数势必很大(如:1 073 741 823),而此时如果滑动系数的值小数位比较多(如:0.37542315),而这个滑动系数是 float 型的,两数相加会变为科学计数法计数,已经超过的了 float 的精度范围,无法保证计算出的页数是正确的。而 ViewPager 限定每次最多只能滑动一屏,因此如果这个错误的结果比当前页前一页还小,就会选用当前页前一页了。 建议把起始页码和 Adapter 大小缩小 1000...
  可能是Picasso缓存的原因,但是具体没找到是为什么