我已经搜索了一段时间,但找不到使用网格布局管理器检测回收器 View 滚动结束的解决方案。使用下面的代码实际上是可行的,但它适用于线性布局管理器而不是网格布局管理器。
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int scrollState) {
final int treeshold = 0;
try {
if (scrollState == RecyclerView.SCROLL_STATE_IDLE) {
if (((LinearLayoutManager) recyclerView.getLayoutManager()).findLastVisibleItemPosition() >= yourData.size()
- 1 - treeshold) {
//your load more logic
}
}
} catch (Exception e) {
}
}
这个想法是我想为我的应用程序实现加载更多功能,所以我需要检测滚动结束。
编辑:也许问题不是 GridView 本身。我使用 com.tonicartos.superslim 库来获取粘性标题 View 。我想知道这可能是问题所在
最佳答案
向您的RecyclerView添加滚动监听器,如下所示:
int pastVisiblesItems, visibleItemCount, totalItemCount;
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView,
int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
visibleItemCount = layoutManager.getChildCount();
totalItemCount = layoutManager.getItemCount();
pastVisiblesItems = layoutManager.findFirstVisibleItemPosition();
if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) {
//bottom of recyclerview
}
}
});
layoutmanager是你的GridLayoutManager
关于android - 使用 SuperSLiM 库检测 RecyclerView 的 GridLayoutManager 滚动结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34655139/