美文网首页
java.lang.IllegalArgumentExcepti

java.lang.IllegalArgumentExcepti

作者: GIndoc | 来源:发表于2017-05-14 13:56 被阅读2941次

    问题: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);
    
    

    结论

    Fix it!!!

    相关文章

      网友评论

          本文标题:java.lang.IllegalArgumentExcepti

          本文链接:https://www.haomeiwen.com/subject/ixjqxxtx.html