zoukankan      html  css  js  c++  java
  • Android 解决RecyclerView删除Item导致位置错乱的问题

    RecyclerView的刷新分为内容变化和结构变化,结构变化比如remove和insert等并不会导致viewholder的更新,所以有时候我们使用

     notifyItemRemoved(position);

    或者使用

     notifyItemInserted(position);

    item的位置并没有发生改变,或者位置发生错乱,很是奇怪诡异,需要重新调用

     notifyDataSetChanged();

    才能刷新整个List每个Item的位置,但这样做会使得RecyclerView增加和删除的动画效果没有了。那么要既想没有Bug的插入删除,又想有动画怎么搞呢,只需要刷新删除位置以下的List的Item位置即可,那么幸亏RecyclerView有一个局部刷新的方法:

    notifyItemRangeChanged(int positionStart, int itemCount)

    怎么使用呢? 
    我们只需要在删除或插入时同时,刷新改变位置item下方的所有Item的位置: 
    插入动作:

    notifyItemInserted(position);
    if (position != mData.size()) {
       otifyItemRangeChanged(position, mData.size() - position);
     }

    删除动作:

     notifyItemRemoved(position);
    if (position != mData.size()) {
       otifyItemRangeChanged(position, mData.size() - position);
     }
  • 相关阅读:
    MySQL性能调优my.cnf详解
    PHP调试工具Xdebug安装配置教程
    【转载】Zend Studio 10正式版注册破解
    SQL 大全(3)
    SQL 大全(1)
    JQuery方法
    修改 C:Users[account name] 目录名称
    wordmate 词典安装
    Python3 之 import 和 当前目录
    初遇 dotcloud
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/6737117.html
Copyright © 2011-2022 走看看