AutoScrollViewPager
AutoScrollViewPager copied to clipboard
滑动异常的问题
Android ViewPager 有一个 bug,导致在做自动轮播图的时候如果选用了将 Adapter 设置为无限大的方案,向前滑动页面到一半时松手,页面不会回到滑动之前的页面,反倒会滑动到反方向,也就是滑动之前页面的前一页。
这个问题的原因是 ViewPager 在监听 Touch 的 UP 事件的时候,通过对当前页数 + 滑动完成度(已经滑动的距离与当前页面宽度的比)+ 一个补偿值实现的,如果设置了无限大的 Adapter,当前页数势必很大(如:1 073 741 823),而此时如果滑动系数的值小数位比较多(如:0.37542315),而这个滑动系数是 float 型的,两数相加会变为科学计数法计数,已经超过的了 float 的精度范围,无法保证计算出的页数是正确的。而 ViewPager 限定每次最多只能滑动一屏,因此如果这个错误的结果比当前页前一页还小,就会选用当前页前一页了。
建议把起始页码和 Adapter 大小缩小 1000 倍。
前天接入了你的库,昨晚通宵改了很多 bug,等有时间提给你吧。目前遗留的问题:
- 动态增加数据后, 会有一页重复滑动,和 取余所用的实际数据项数有关;
- 只有两页的时候滑动会闪屏,这个应该与 ViewPager 至少缓存左右各一屏 View 有关
谢谢反馈,我等会看看。
向前滑动页面到一半时松手,页面不会回到滑动之前的页面,反倒会滑动到反方向。这个问题已解决,动态添加数据的还在看
给力
Hello guys, I wanna use this lib, so I tried to see issues, but I found that you speak chinese or something like that, next time think about us, so use Arabic :D
@ivanove ,yes,we should use English when communication,especially talking about something technical.