4

Ich habe eine Liste von Bildern in meiner Recycler-Ansicht und beim Scrollen in der Recycler-Ansicht wird onBindViewHolder aufgerufen.Abrufen von onBindViewHolder beim Scrollen in der Recycler-Ansicht

Ich möchte onBindViewHolder erneut aufrufen, wenn ich die Recycleransicht nach oben scrolle, so dass ich die Position des aktuell angezeigten Bildes abrufen kann.

Wie OnBindViewHolder wieder aufrufen (beim Hochscrollen)?

+0

Sorry, das ist nicht die Art, wie StackOverflow funktioniert. Fragen des Formulars "Ich möchte X machen, bitte geben Sie mir Tipps und/oder Beispielcode" werden als off-topic betrachtet. Bitte besuchen Sie die [Hilfe-Center] (http://stackoverflow.com/help) und lesen Sie [How to Ask] (http://stackoverflow.com/help/how-to-ask), und lesen Sie besonders warum [" Kann mir jemand helfen? "Keine Frage?" (Http://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an-actual-questition) – bc004346

Antwort

2

Dies ist möglicherweise nicht der beste Weg, um das aktuell angezeigte Bild herauszufinden, aber Sie können Ihrer Recycler-Ansicht einen Scroll Listener hinzufügen und wenn der dy scroll negativ ist, können Sie adapter.notifyDataSetChanged aufrufen, so dass onBindViewHolder erneut aufgerufen wird

mFragmentListBinding.movieGrid.addOnScrollListener(new RecyclerView.OnScrollListener() { 
      @Override 
      public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
       super.onScrolled(recyclerView, dx, dy); 
       if (dy < 0) { 
        mAdapter.notifyDataSetChanged(); 
       } 
      } 
     }); 
+0

Es funktioniert Aber was ist der beste Weg, um das aktuell betrachtete Bild herauszufinden? –

+0

Wie viele Ansichten sind gleichzeitig in Ihrem Layout sichtbar? weil der Layoutmanager auch diese zwei Methoden anbietet: layoutManager.findLastVisibleItemPosition() und layoutManager.findFirstVisibleItemPosition() –

+0

Zwei Ansichten sind gleichzeitig in meinem Layout sichtbar. –

Verwandte Themen