美文网首页
关于RecyclerView自实现点击事件出现的坑

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

作者: Jlanglang | 来源:发表于2016-12-18 13:52 被阅读0次

    具体情况:

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

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

    解决办法1:(治标)

    在xml里面RecyclerView标签加上

      android:splitMotionEvents="false"
    

    禁止当前容器多点触摸.

    如果app没有多点触摸需求,可以设置Theme

    <itemname="android:splitMotionEvents">false</item>
    

    来禁止掉这个功能,

    解决办法2:(治本)

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

    发现个bug做个日记.

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

    相关文章

      网友评论

          本文标题:关于RecyclerView自实现点击事件出现的坑

          本文链接:https://www.haomeiwen.com/subject/iznamttx.html