Как получить полностью видимые ячейки / предметы в программе переработчика? - PullRequest
0 голосов
/ 16 июня 2019

У меня есть экран, на котором элементы / ячейки спроектированы в виде сетки 2x2. То, что я хочу сделать, - это запускать API для отображения / показа элемента, когда RecyclerView прокручивает вверх / вниз.

Поскольку мой список довольно большой

Например, сценарий:

  1. При первой загрузке показывает, например, 6 (3х2) предметов / ячейки. Затем запустите API для всех этих 6 элементов, поскольку они полностью видны.
  2. При прокрутке вверх, например он показывает еще 2 элемента и более / верхние 2 элемента выходят за пределы экрана, следовательно, он должен запускать API для новых 2 элементов.

Таким образом, я хочу завершить обход всего списка и вызвать API для вновь найденных элементов.

То, что я пробовал, это

  1. Ниже методы GridLayoutManager не работают для меня, так как каждый из них дает разные значения и кажется случайным

int findFirstVisibleItemPosition ();

int findFirstCompletelyVisibleItemPosition ();

int findLastVisibleItemPosition ();

int findLastCompletelyVisibleItemPosition ();

  1. Проверка границ View лежащих на экране с помощью Rect | getGlobalVisibleRect(), но это также не работает внутри onScrolled() | OnScrollStateChanged()

Пожалуйста, предложите подход, где я могу получить правильный индекс полностью видимой ячейки.

1 Ответ

0 голосов
/ 16 июня 2019

Попробуйте создать отдельный поток для действия onScrolled() | onScrollStateChanged().Это решит вашу проблему.

...