Reputation: 369
I applied on scroll in listview
the following way:
mylistview.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
boolean loadMore = /* maybe add a padding */
firstVisibleItem + visibleItemCount >= totalItemCount;
if(loadMore) {
int tempLimit = totalItemCount/50 + 1;
FriendsAdapter temp = (FriendsAdapter) friendsList.getAdapter();
if (temp!=null&&temp.ev.size()>0&&temp.ev.size()+50<=tempLimit*50) {
limit = tempLimit;
new GetFriendRequestsAsync(getActivity(),String.valueOf(limit)).execute();
}
}
}
});
Now I need to update that and use a RecycleView
. How can I apply this to a RecycleView
? Every 50 items, I do something.
Upvotes: 2
Views: 126
Reputation: 532
You can use the following:
mRecyclerView.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) {
super.onScrolled(recyclerView, dx, dy);
int lastVisibleItemPosition = ((LinearLayoutManager) layoutManager).findLastVisibleItemPosition();
boolean loadMore = /* maybe add a padding */
lastVisibleItemPosition + 6 >= totalItemCount;
if (loadMore) {
int tempLimit = totalItemCount / 50 + 1;
FriendsAdapter temp = (FriendsAdapter) friendsList.getAdapter();
if (temp != null && temp.ev.size() > 0 && temp.ev.size() + 50 <= tempLimit * 50) {
limit = tempLimit;
new GetFriendRequestsAsync(getActivity(), String.valueOf(limit)).execute();
}
}
}
});
Upvotes: 2