Как узнать, что последний элемент recyclerView первого или текущего экрана / страницы загружен, любые обратные вызовы, но вызывается один раз? - PullRequest
0 голосов
/ 05 февраля 2020

Я использую сетку макета recyclerView и попробовал несколько вариантов, используя методы onLayoutCompled, а также методы onScollListner, попробовал этот ответ, но он будет вызываться несколько раз, так как каждый элемент продолжает загружаться, ничего не работает ,

Просто хочу обнаружить последний элемент recyclerView определенного экрана полностью загружен или видим для пользователя в зависимости от его размера экрана. Или мы можем сказать, что когда текущий экран пользователя заполнен Пункты recyclerView, любой способ обнаружить это? ANd должен вызываться только один раз . Любая помощь будет великолепна.
Спасибо за ваше драгоценное время.

1 Ответ

0 голосов
/ 17 февраля 2020

Вы можете использовать значение Sharedpref , которое может быть установлено в true в вашем методе onScrollStateChanged в зависимости от вашего состояния.

@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.
   }

}
...