2016-12-04 62 views
2

我申请上滚动在listview方式如下:无限滚动的RecyclerView

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(); 
     } 

     } 
    } 
}); 

现在我需要更新和使用RecycleView。我怎样才能把这个应用到RecycleView?每50个项目,我都会做点什么。

+0

份额完整的代码.... –

回答

2

您可以使用以下方法:

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(); 

       } 
      } 
     } 
    });