GcsSloop / pager-layoutmanager

[暂停维护]Android 网格分页布局。
http://www.gcssloop.com/
Apache License 2.0
1.13k stars 182 forks source link

滑到最后一页,然后手速快一点滑动返回上一页,就会滚回到第一页 #19

Open lihuanming opened 6 years ago

lihuanming commented 6 years ago

如题,感觉是滑动判断有问题。

GcsSloop commented 6 years ago

总共多少页数据? 在比较用力的翻页情况下,会一次翻过2个页面的。

lihuanming commented 6 years ago

一共6页

lihuanming commented 6 years ago

对,用力就会翻过几个页面

GcsSloop commented 6 years ago

按照现有版本的设计原理上来说一次快速滑动最多只能翻过两个页面,如果多翻了说明逻辑是存在漏洞的。 但是我刚刚测试了一下,在这边的demo里面并没有测试出上述问题。如果可能的话,能否提供一下你那边关于这一部分的代码呢?

YandZD commented 5 years ago

private boolean mAllowContinuousScroll = true; //设置为false

lhwCoding commented 4 years ago

水平滚动 6页 会执行3次从右往左滑动,会回到第一页,设置下面属性都不行 pagerManger.setAllowContinuousScroll(false); pagerManger.setChangeSelectInScrolling(false); 其scrollHorizontallyBy(int dx, RecyclerView.Recycler recycler, RecyclerView.State state)中的dx往左滑动变动值感觉有问题 一样的速度却能达到负五六千 添加一行 if (dx<-1000)dx=dx/2; 缩短移动数率 @Override public int scrollHorizontallyBy(int dx, RecyclerView.Recycler recycler, RecyclerView.State state) { Logi("scrollHorizontallyBy dx= " + dx+",mOffsetX="+mOffsetX); int newX = mOffsetX + dx; if (dx<-1000)dx=dx/2;//修改左滑dx速率负数过大,出现跳页问题 int result = dx;