1

I enthalten sind, RecyclerView innen NestedScrollView und setzenWie implementieren Paginierung in RecyclerView, die im Inneren nestedScrollView ist

mRecyclerView.setNestedScrollingEnabled(false);

Da das Scrollen von RecyclerView-falsch gesetzt ist, wird ich die Bildlaufposition nicht von RecyclerView aufgrund dessen kann ich keine Paginierung in RecyclerView setzen.

Ich habe auch versucht, diese

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

       } 
      } 
     } 
    }); 

Aber hier lastVisibleItem immer die Länge der Liste gibt angezeigt werden.

Nach wenigen Graben fand ich, dass, wenn wir ganz am Anfang RecylerView innen NestedScrollView alle der Ansicht erstellt verwenden wird, so dass der Grund ist, warum lastVisibleItem immer die Größe der Liste gibt.

Oder wenn ich falsch liege, bitte erklären Sie mir, wie RecyclerView innerhalb NestedScrollView funktioniert ?.

Gibt es eine Problemumgehung, so dass ich RecyclerView Scroll-Position bekommen kann, so dass ich meine Seitennummerierung arbeiten kann ?.

Es wird eine große Hilfe sein. Vielen Dank im Voraus

+1

Haben Sie die Lösung gefunden? –

Antwort

3

Hier blättert 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(); 
       } 
      }); 
Verwandte Themen