2016-03-23 20 views
0

Yükleyici ile Superslim Kütüphanesi kullanıyorum ama hatayı alıyorum. Yük için daha fazla bir EndlessRecyclerOnScrollListener sınıfı oluşturuyorum ama benim için çalışmıyor.Daha fazla geri yükleme superslim kütüphanesi ile

Bunu aşağıdaki yolla arıyorum.

mViews.mRecyclerView.addOnScrollListener(new EndlessRecyclerOnScrollListener(new LayoutManager(getActivity())) { 
      @Override 
      public void onLoadMore(int current_page) { 
       if (skipItem == 0) 
        skipItem = 1 * current_page; 
       else 
        skipItem = skipItem * current_page; 

       new ServiceSync().execute("26", String.valueOf(skipItem)); 
      } 
     }); 


public abstract class EndlessRecyclerOnScrollListener extends RecyclerView.OnScrollListener { 
     private int previousTotal = 0; // The total number of items in the dataset after the last load 
     private boolean loading = true; // True if we are still waiting for the last set of data to load. 
     private int visibleThreshold = 4; // The minimum amount of items to have below your current scroll position before loading more. 
     int firstVisibleItem, visibleItemCount, totalItemCount; 

     private int current_page = 1; 

     private LayoutManager mlayoutManager; 

     public EndlessRecyclerOnScrollListener(LayoutManager linearLayoutManager) { 
      this.mlayoutManager =(LayoutManager) linearLayoutManager; 
     } 

     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
      super.onScrolled(recyclerView, dx, dy); 

      visibleItemCount = recyclerView.getChildCount(); 
      totalItemCount = mlayoutManager.getItemCount(); 
      firstVisibleItem = mlayoutManager.findFirstVisibleItemPosition(); 

      if (loading) { 
       if (totalItemCount > previousTotal) { 
        loading = false; 
        previousTotal = totalItemCount; 
       } 
      } 
      if (!loading && (totalItemCount - visibleItemCount) 
        <= (firstVisibleItem + visibleThreshold)) { 
       // End has been reached 
       // Do something here 
       current_page++; 
       loading = true; 
      } 
     } 

     public abstract void onLoadMore(int current_page); 
    } 

Hata günlüğü: Bu benim EndlessRecyclerOnScrollListener olduğunu

java.lang.NullPointerException at com.tonicartos.superslim.SectionData.<init>(SectionData.java:36) 
at com.tonicartos.superslim.LayoutManager.findFirstVisibleItem(LayoutManager.java:156) 
at com.tonicartos.superslim.LayoutManager.findFirstVisibleItemPosition(LayoutManager.java:187) 
at fourever.textile.notificationadapter.notifications$EndlessRecyclerOnScrollListener.onScrolled(notifications.java:235) 
at android.support.v7.widget.RecyclerView.dispatchOnScrolled(RecyclerView.java:3704) 
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2947) 

cevap

1

, çalışıyor:

@Override 
public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
    super.onScrolled(recyclerView, dx, dy); 

    if(mLinearLayoutManager == null) return; 

    int visibleItemCount = recyclerView.getChildCount(); 
    int totalItemCount = mLinearLayoutManager.getItemCount(); 
    int firstVisibleItem = mLinearLayoutManager.findFirstVisibleItemPosition(); 

    if (loading) { 
     if (totalItemCount > previousTotal) { 
      loading = false; 
      previousTotal = totalItemCount; 
     } 
    } 
    if (!loading && (totalItemCount - visibleItemCount) <= (firstVisibleItem + visibleThreshold)) { 
     // End has been reached 

     // Do something 
     currentPage++; 

     onLoadMore(currentPage); 

     loading = true; 
    } 

    if (mLinearLayoutManager.findLastVisibleItemPosition() == totalItemCount - 1) { 
     onEnd(totalItemCount); 
    } 

} 
+0

Maalesef aynı hatada çalışmıyor –

İlgili konular