关于RecyclerView自实现点击事件出现的坑

具体状况:

个人需求是一个展现图片的Recyclview. 当我同时删除2个图片的时候就会出现数组越界异常. 若是我一个一个删除,就不会出现. 分析一下基本就能想到.Adapter的notifyDataSetChanged出现了问题. 发现这段android

public final int getAdapterPosition() { 
       if (mOwnerRecyclerView == null) { 
             return NO_POSITION;  //这个常量就是-1.
        }   
       return mOwnerRecyclerView.getAdapterPositionFor(this);
  }
复制代码

解决办法1:(治标)

在xml里面RecyclerView标签加上数组

android:splitMotionEvents="false"
复制代码

禁止当前容器多点触摸.bash

若是app没有多点触摸需求,能够设置Themeapp

<itemname="android:splitMotionEvents">false</item>
复制代码

来禁止掉这个功能,ui

解决办法2:(治本)

不要使用getAdapterPosition() 在adapter里面改用getLayoutPosition();来拿到positionthis

发现个bug作个日记.spa

另外吐槽一下,hongyang的base-adapter里的MultiItemTypeAdapter仍是getAdapterPosition().哈哈code

相关文章
相关标签/搜索