關於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

相關文章
相關標籤/搜索