Come sapere che è stato caricato l'ultimo elemento recyclerView della prima schermata / pagina corrente o di qualsiasi callback ma viene chiamato una volta?

2020-02-05 java android android-layout android-recyclerview google-people

Sto usando un layout a griglia di recyclerView e ho provato diverse opzioni usando i metodi onLayoutCompled e anche con i metodi onScollListner, ho provato questa risposta ma è difficile chiamare più volte mentre ogni elemento continua a caricarsi, nulla funziona.

Voglio solo rilevare l'ultimo elemento recyclerView di una determinata schermata che è completamente caricato o visibile all'utente in base alle dimensioni dello schermo Oppure possiamo dire che quando la schermata corrente dell'utente è piena degli oggetti recyclerView, c'è modo di rilevarlo? E dovrebbe essere chiamato solo una volta . Qualsiasi aiuto sarebbe grande.
Grazie per il tuo prezioso tempo.

Answers

È possibile utilizzare un valore Sharedpref che può essere impostato su true nel metodo onScrollStateChanged base alla propria condizione.

@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
   super.onScrollStateChanged(recyclerView, newState);

   if (newState != RecyclerView.SCROLL_STATE_IDLE) {
      return;
   }

   boolean isLastPositionVisible = mFollowingLayoutManager.findLastVisibleItemPosition() == getList().size() - 1

   if(isLastPositionVisible && getSharedPrefValue()) {
      // Call your method
      // Set sharedpref value to true.
   }

}

Related