• 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());
  • 相关阅读:
    网络编程
    常用模块补充
    面向对象进阶
    面向对象 --- 封装
    面向对象 三大特性--多态
    python 面向对象三大特性
    python 面向对象
    python 模块与包
    如何在Word的方框中打对号
    关于VS 2013连接Microsoft Access 2013的相关问题
  • 原文地址:https://www.cnblogs.com/Sharley/p/9680569.html
Copyright © 2020-2023  润新知