iielse / imageviewer

A simple and customizable Android full-screen image viewer 一个简单且可自定义的Android全屏图像浏览器

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

onPageSelected回调总是先走position=0

HeJingWei opened this issue · comments

在demo中。每次打开大图,或者remove某张图,pagerCallback的onPageSelected回调总是先走一次position=0,再走一次才是正确位置,导致了指示器每次都先跳一下0

commented

问题已复现,待我好好研究下

commented

我改好了

commented

implementation 'com.github.iielse:imageviewer:2.1.16'

有空的话,可以解释一下原因吗

在更新了新版本后,您在自定义viewer中的删除上 进入判断if (ViewerHelper.loadAllAtOnce) 弹出了SimpleDataProvider的写法不支持删除。
由此我发现了新问题,当我在demo中滑动时,由于分页PAGE_SIZE=5,我点的下标为5后的item,指示器最大总是显示5,当我滑动下一张从5滑到7、8、9...之后,点击remove删除,指示器会立马变成5,因为onPageSelected回调最大的position就是5,所以我把PAGE_SIZE改为40,这样的话就总是在第一页
所以我认为当ViewerHelper.loadAllAtOnce,应该是可以删除的,但是我的水平不够,不是完全看得懂您的代码,所以我把PAGE_SIZE改为比一页的数据还大后,能正常删除

其实我想说的就是,您能否优化一下SimpleDataProvider,让一次性全加载的页面也可以进行item删除

commented

onPageSelected目前触发了2次和PagingSource.load方法的实现有关.

SimpleDataProvider的作用目前是帮开发者简易实现loadAfter和loadBefore前后加载方法的.这个由于和框架的实现方式有关.
设计的时候没有考虑要支持增删.

带增删的SimpleDataProvider 我再研究下

commented

差不多改好了。 下午我自查下,问题不大就提交新代码了。 差不多了,吃完饭回来 发个新版本.

commented

好了, 试下 2.1.17

多谢解决~