recyclerView插入(add)和删除(remove)item后,item错乱,重复,覆盖在原recyclerView上

项目用到,实现一个recyclerView列表的item翻转动效,翻转的同时会将指定item置顶。

(比如交换AB位置,A在0位置,指定的item B 在 i 位置)

原始使用的是插入B到0位置,然后移除B

dataList.add(0, bean);
mAdapter.notifyItemInserted(0);
mAdapter.notifyItemRangeChanged(0, dataList.size());
dataList.remove(bean);
mAdapter.notifyItemRemoved(i + 1);
if (i + 1 < dataList.size()) {
mAdapter.notifyItemRangeChanged(i + 1, dataList.size() - (i + 1));
}
 
 

这样插入移除更新引起的问题即是recyclerView的item错乱和重复,并且不是在recyclerView上的数据混乱,是在原recyclerView布局地方的上层或下层出现一块重复了的item。emm,具体原因我也不清楚,反正能确定的就是这里remove+add引起的,然后修改成了直接将AB交换位置,解决问题。

                dataList.set(i, dataList.get(0));
                mAdapter.notifyItemChanged(i);
                if (i < dataList.size()) {
                    mAdapter.notifyItemRangeChanged(i, dataList.size() - (i));
                }
                dataList.set(0, bean);
                mAdapter.notifyItemChanged(0);
                mAdapter.notifyItemRangeChanged(0, dataList.size());

 

转载于:https://www.cnblogs.com/Sharley/p/9680569.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值