RecyclerView往上滑动翻页时findFirstVisibleItemPosition() 所获取的值为什么不会改变?
RecyclerView往上滑动翻页的时候,linearLayoutManager.findFirstVisibleItemPosition() 所获取的值为什么不会改变?
往下滑的时候是会改变的,比如从1到9,往上滑就一直停留在9了。(准确的说:它跳到8,然后又马上变成9)
请大家帮我看看:为什么会发生这种情况?代码:
class PdfScrollListener extends RecyclerView.OnScrollListener {
int currentPage = 0;
int lastPage = 0;
PdfActivity pdfActivity;
public PdfScrollListener(PdfActivity pdf) {
pdfActivity = pdf;
}
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
Log.e("Position","============:"+linearLayoutManager.findFirstVisibleItemPosition());
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
if (((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition() == -1) {
currentPage = 0;
} else {
currentPage = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition();
}
//再插入之后的两页
if (currentPage > lastPage && currentPage + 2 < pdfActivity.pageCount) {//判断不超过总的页数就提前插入两页
pdfActivity.goDown(currentPage);
recyclerView.getAdapter().notifyItemInserted(currentPage + 2);
pdfActivity.deletePage(currentPage);
}
if (currentPage < lastPage && currentPage - 2 >= 0 && recyclerView.getAdapter().getItemId(currentPage - 2) == recyclerView.NO_ID) {
recyclerView.getAdapter().notifyItemInserted(currentPage - 3);
}
recyclerView.invalidate();
lastPage = currentPage;
}
}
...全文
相关推荐
item高度不同时Recyclerview获取滑动距离的方法
主要介绍了item高度不同时Recyclerview获取滑动距离的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Android笔记:(最全)判断Item在RecyclerView中滑动到顶部或底部
同样是在LayoutManager中,可以通过方法findLastVisibleItemPosition()获取到最后一个可见的Item的position,再通过getItemCount()获取到RecyclerView中的Item总数。如果最后一个可见的Item的position加1等于RecyclerView中的Item总数,则说明已经滑动到了底部。如果返回false,表示已经滑动到顶部或底部。方法1: 比较推荐,和你设置的layoutManager无关。
Android RecyclerView横向滑动+自动轮播
Android RecyclerView横向滑动+自动轮播(一款值得你借鉴的Demo)
recyclerview 横向纵向滑动,滑动置顶,跳转到某一项item
recyclerview 横向纵向滑动,滑动置顶,跳转到某一项item
RecyclerView实现Item滑动加载进入动画效果
RecyclerView实现Item滑动加载进入动画效果,详情链接地址http://blog.csdn.net/u012341052?viewmode=contents


