Я хочу обновить один элемент, вызывающий асинхронный вызов API сервера внутри onBindViewHolder
. Я отправляю товар в позиции + позиция в обратный вызов. Ответный вызов поступает через 20 секунд в функцию обратного вызова. В функцию обратного вызова возвращается ответ и позиция. Тогда я звоню notifyItemChanged(pos, response)
. А внутри полезной нагрузки onBindViewHolder
я обновляю элемент на эту позицию и его вид. Проблема заключается в том, что если асинхронный запрос занимает 20 секунд, и пользователь будет быстро прокручивать RecyclerView
, он обновит неправильный элемент View
, потому что это представление в позиции может быть несвязанным или связанным с другим элементом из списка.
Есть ли способ, как отследить, какой элемент в какой позиции не связан для отмены запроса? Я должен обновить эту информацию после того, как адаптер будет создан, потому что, если я сделаю это раньше, пользователь не будет видеть ни одного элемента recyclerView в течение почти 2 минут, пока мой список не будет готов. (только этот один звонок занимает столько времени).