2017-04-10 2 views

답변

1

단지 recyclerview에 addOnScrollListener()를 구현하십시오. 그런 다음 스크롤 리스너 내부에서 아래 코드를 구현합니다.

RecyclerView.OnScrollListener mScrollListener = new RecyclerView.OnScrollListener() { 
    @Override 
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
     if (mIsLoading) 
      return; 
     int visibleItemCount = mLayoutManager.getChildCount(); 
     int totalItemCount = mLayoutManager.getItemCount(); 
     int pastVisibleItems = mLayoutManager.findFirstVisibleItemPosition(); 
     if (pastVisibleItems + visibleItemCount >= totalItemCount) { 
      //End of list 
     } 
    } 
}; 
0
private RecyclerView.OnScrollListener nRecyclerViewOnScrollListener = 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 visibleItemCount = notificationLayoutManager.getChildCount(); 
     int totalItemCount = notificationLayoutManager.getItemCount(); 
     int firstVisibleItemPosition = notificationLayoutManager.findFirstVisibleItemPosition(); 
     if ((visibleItemCount + firstVisibleItemPosition) >= totalItemCount) { 
      nLoadMoreItems(); 

     } 
    } 
}; 

private void nLoadMoreItems() { 
    if (defaultCurrentPage < defaultpageCount) 
     layout_load_more_loadingNotification.setVisibility(View.VISIBLE); 
    int pageCount = (defaultCurrentPage + 1); 
    //fetch second page data 
     } 

모든 답을보고 난 후에 그것을

+0

고마워, @Safal에서 업데이트 된 답변을 확인할 수 있습니다. –

0

을 시도, 나는

private RecyclerView.OnScrollListener nRecyclerViewOnScrollListener = new RecyclerView.OnScrollListener() { 
    @Override 
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) { 
     super.onScrollStateChanged(recyclerView, newState); 
     if (newState == 2) { 
      try { 
       if (lastVisibleItemPosition + 1 == totalItemCount) { 
        //Write you code here 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
       Log.i(TAG, e.getMessage()); 
      } 
     } 
    } 

    @Override 
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
     super.onScrolled(recyclerView, dx, dy); 
     totalItemCount = mLayoutManager.getItemCount(); 
     lastVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition(); 

    } 
}; 

당신이 무엇을보기

recyclerView.addOnScrollListener(nRecyclerViewOnScrollListener);