【发布时间】:2019-06-28 20:17:54
【问题描述】:
我想更新一项调用异步调用到onBindViewHolder 内的服务器 API 的项目。我将位置 + 位置的项目发送到回调中。响应调用在 20 秒内到达回调函数。进入回调函数的是返回的响应和位置。然后我打电话给notifyItemChanged(pos, response)。在有效载荷onBindViewHolder 中,我更新了该位置上的项目及其视图。问题是,如果异步请求需要 20 秒并且用户将快速滚动通过 RecyclerView,它将更新错误的项目 View,因为该位置的视图可能未绑定或可能绑定到列表中的其他项目。
有什么方法可以跟踪哪个位置的哪个项目未绑定取消请求?我必须在创建适配器后更新这一信息,因为如果我之前这样做,用户将在近 2 分钟内看不到任何 recyclerView 项目,直到我的列表准备好。 (只有这一个电话需要很长时间)。
【问题讨论】:
标签: android android-recyclerview