Abh*_*wal 3 pagination android android-recyclerview nestedscrollview android-nestedscrollview
我已经包含RecyclerView在里面NestedScrollView并设置
mRecyclerView.setNestedScrollingEnabled(false);
由于滚动RecyclerView设置为false,因此我将无法获得 的滚动位置,RecyclerView因此我将无法将分页放入RecyclerView.
我也试过这个
mRecylerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
if(dy > 0) {
totalItemCount = linearLayoutManager.getItemCount();
lastVisibleItem = linearLayoutManager.findLastVisibleItemPosition();
if (!isLoading && totalItemCount <= (lastVisibleItem + visibleThreshold)) {
// End has been reached
// Do something
if (mOnLoadMoreListener != null) {
mOnLoadMoreListener.onLoadMore();
isLoading = true;
}
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
但是这里lastVisibleItem总是给出要显示的列表的长度。
经过几次挖掘,我发现当我们使用RecylerViewinside 时,NestedScrollView所有视图都是在最开始创建的,这就是lastVisibleItem总是给出列表大小的原因 。
或者,如果我错了,请解释一下,我RecyclerView内部NestedScrollView是如何工作的?。
是否有任何解决方法,以便我可以获得RecyclerView滚动位置,以便我可以使我的分页工作?。
这将是一个很大的帮助。提前致谢
小智 6
这里滚动是 NestedScrollView
scroll.getViewTreeObserver().addOnScrollChangedListener(() -> {
View view = (View) scroll.getChildAt(scroll.getChildCount() - 1);
Log.d("CategoryNeswList", scroll.getChildCount() + " child");
int diff = (view.getBottom() - (scroll.getHeight() + scroll
.getScrollY()));
if (diff == 0) {
// getPlaylistFromServer("more");
Toast.makeText(mContext, "Load More", Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3225 次 |
| 最近记录: |