java.lang.IllegalArgumentExcepti
2017-05-14 本文已影响2941人
GIndoc
问题:Called attach on a child which is not detached: ViewHolder#出现问题的原因
经过google后发现,出现该问题的原因是由于recyclerView自带动画,当动画结束的时候,recyclerView会再次回收item,我们也因此可以重用item,而恰恰的是,我们在动画还没结束的时候,就视图重用item,结果就GG了。一下是谷歌的结果:[图片上传中。。。(1)]
相关链接#11
解决方法
我们可以把recyclerView的默认动画关了,两种解决方案:
- 重写ItemAnimator并对RecyclerView进行设置
- 设置ItemAnimator的动画时间
我选择了第二种
//mBinding.recyclerView.getItemAnimator().setAddDuration(0);
//mBinding.recyclerView.getItemAnimator().setChangeDuration(0);
//mBinding.recyclerView.getItemAnimator().setMoveDuration(0);
//mBinding.recyclerView.getItemAnimator().setRemoveDuration(0);
((SimpleItemAnimator) mBinding.recyclerView.getItemAnimator()).setSupportsChangeAnimations(false);