RecyclerView.findViewHolderForAdapterPosition为空

aled6825 2017-01-06 11:18:52
楼主使用RecyclerView根据每个Item图片数量动态异步加载图片。
图片使用的是ImagePool统一管理缓存或者下载,异步回传Handler时候发现RecyclerView.findViewHolderForAdapterPosition为空。

时序是这样的
1.onCreateViewHolder不表
2.onBindViewHolder启动ImagePool
3.异步Handler回传Bitmap,使用findViewHolderForAdapterPosition找到ViewHolder加载图片。

第一屏2个item图片异步加载正常。
稍滚动,此时由于前两个Item比较大,尚未真正滚动到第三个Item, 但却启动第三个item的onCreateViewHolder/onBindViewHolder,此时上面时序3的findViewHolderForAdapterPosition出现为空的现象,异步图片加载失败。

坛子里有没有人遇到这种情况,可有解决方案?
...全文
1214 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aled6825 2017-01-06
  • 打赏
  • 举报
回复
引用 3 楼 heaimnmn 的回复:
[quote=引用 2 楼 aled6825 的回复:] [quote=引用 1 楼 heaimnmn 的回复:] findViewHolderForAdapterPosition意思传出来的view为null?
是的,传出来应该是VH的,但找不到,测试findViewHolder的4个方法都是null。[/quote]直接debug到findViewHolderForAdapterPosition里面看看呗[/quote] 解了,所有异步任务放到了onViewAttachedToWindow中做即可。 不过确实挺不甘心的,onBindViewHolder时候就已经进行了postion和VH匹配,findViewHolder却依然找不到,bug?
哎,真难 2017-01-06
  • 打赏
  • 举报
回复
引用 2 楼 aled6825 的回复:
[quote=引用 1 楼 heaimnmn 的回复:] findViewHolderForAdapterPosition意思传出来的view为null?
是的,传出来应该是VH的,但找不到,测试findViewHolder的4个方法都是null。[/quote]直接debug到findViewHolderForAdapterPosition里面看看呗
aled6825 2017-01-06
  • 打赏
  • 举报
回复
引用 1 楼 heaimnmn 的回复:
findViewHolderForAdapterPosition意思传出来的view为null?
是的,传出来应该是VH的,但找不到,测试findViewHolder的4个方法都是null。
哎,真难 2017-01-06
  • 打赏
  • 举报
回复
findViewHolderForAdapterPosition意思传出来的view为null?

80,354

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧