AutoScrollViewPager icon indicating copy to clipboard operation
AutoScrollViewPager copied to clipboard

滑动异常的问题

Open nantofu opened this issue 8 years ago • 6 comments

Android ViewPager 有一个 bug,导致在做自动轮播图的时候如果选用了将 Adapter 设置为无限大的方案,向前滑动页面到一半时松手,页面不会回到滑动之前的页面,反倒会滑动到反方向,也就是滑动之前页面的前一页。

这个问题的原因是 ViewPager 在监听 Touch 的 UP 事件的时候,通过对当前页数 + 滑动完成度(已经滑动的距离与当前页面宽度的比)+ 一个补偿值实现的,如果设置了无限大的 Adapter,当前页数势必很大(如:1 073 741 823),而此时如果滑动系数的值小数位比较多(如:0.37542315),而这个滑动系数是 float 型的,两数相加会变为科学计数法计数,已经超过的了 float 的精度范围,无法保证计算出的页数是正确的。而 ViewPager 限定每次最多只能滑动一屏,因此如果这个错误的结果比当前页前一页还小,就会选用当前页前一页了。

建议把起始页码和 Adapter 大小缩小 1000 倍。

nantofu avatar Jan 06 '17 08:01 nantofu

前天接入了你的库,昨晚通宵改了很多 bug,等有时间提给你吧。目前遗留的问题:

  • 动态增加数据后, 会有一页重复滑动,和 取余所用的实际数据项数有关;
  • 只有两页的时候滑动会闪屏,这个应该与 ViewPager 至少缓存左右各一屏 View 有关

nantofu avatar Jan 06 '17 08:01 nantofu

谢谢反馈,我等会看看。

caikaidev avatar Jan 06 '17 08:01 caikaidev

向前滑动页面到一半时松手,页面不会回到滑动之前的页面,反倒会滑动到反方向。这个问题已解决,动态添加数据的还在看

caikaidev avatar Jan 10 '17 01:01 caikaidev

给力

nantofu avatar Jan 19 '17 02:01 nantofu

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

NizarETH avatar Feb 07 '17 09:02 NizarETH

@ivanove ,yes,we should use English when communication,especially talking about something technical.

lizihanglove avatar Apr 25 '17 01:04 lizihanglove