LRecyclerView icon indicating copy to clipboard operation
LRecyclerView copied to clipboard

使用自定义的notifyItemRemoved移除item显示不正确

Open XuanJiAndroid opened this issue 7 years ago • 1 comments

使用版本1.3.2,调用自定义的Adapter的notifyItemRemoved移除一条item后(第一次的移除是正确的),通过LRecyclerView的onItemClick的回调中的position不准确,我曾试过,自己在自定义的Adapter中的onBindViewHolder中添加条目点击监听,但是同样的拿到的position也是不准确。

还有提个小建议,每次的新版本发布,麻烦写上更新了什么内容,我查阅了1.4.2的更新只看到fix bug的提交信息,但具体改了什么,还得需要自行找。

XuanJiAndroid avatar Apr 08 '17 20:04 XuanJiAndroid

请使用最新版本! 删除item相关的代码:

mLRecyclerViewAdapter.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(View view, int position) {
                if (mDataAdapter.getDataList().size() > position) {
                    ItemModel item = mDataAdapter.getDataList().get(position);
                    AppToast.showShortText(getApplicationContext(), item.title);
                    mDataAdapter.remove(position);
                }

            }

        });

其中,remove(int position)方法如下:

public void remove(int position) {
        this.mDataList.remove(position);
        notifyItemRemoved(position);

        if(position != (getDataList().size())){ // 如果移除的是最后一个,忽略
            notifyItemRangeChanged(position,this.mDataList.size()-position);
        }
    }

jdsjlzx avatar Apr 09 '17 13:04 jdsjlzx