我在RecyclerView
内加了NestedScrollView
并设置了
mRecyclerView.setNestedScrollingEnabled(false);
由于RecyclerView
的滚动设置为 false ,因此我无法获得RecyclerView
的滚动位置,因此我无法在RecyclerView
中添加分页{1}}。
我也试过这个
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;
}
}
}
}
});
但是 lastVisibleItem 总是给出要显示的列表的长度。
经过几次挖掘,我发现当我们在RecylerView
内使用NestedScrollView
时,所有视图都会在一开始就被创建,这就是 lastVisibleItem 的原因所在总是给出列表的大小。
或者,如果我错了,请解释一下RecyclerView
NestedScrollView
内的RecyclerView
如何运作?
是否有任何解决方法以便我可以获得np.array
滚动位置以便我可以使我的分页工作?
这将是一个很大的帮助。提前致谢
答案 0 :(得分:3)
这里滚动是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();
}
});