notifyItemRemoved(i)不使用notifyItemRangeChanged()android

时间:2016-08-18 12:20:49

标签: android list android-recyclerview notifydatasetchanged

我在Recyclerview中有一个用户Feed列表。我从列表中删除了用户的Feed,然后我通知了我的adapter,以便Recyclerview现在已更新Feed。

private void removeBlockedUserLocally() {
        int blockedPosition = prefUtils.getSharePrefInt(SharedPrefUtils.BLOCKED_POSITION, (-1));
        boolean isBlocked = prefUtils.getSharePrefBoolean(SharedPrefUtils.IS_BLOCKED, false);
        String blockedId = prefUtils.getSharePrefString(SharedPrefUtils.BLOCKED_ID, "");
        if (blockedPosition != (-1) && isBlocked) {
            commonFunction.printDebug(TAG, "" + list.size());
            try {
                for (int i = 0; i < list.size(); i++) {
                    if (list.get(i).created_by_user_id.equals(blockedId)) {
                        list.remove(i);
                        adapter.notifyItemRemoved(i);
                        adapter.notifyItemRangeChanged(0,list.size());
                    }
                }
                commonFunction.printDebug(TAG, "" + list.size());
                prefUtils.deleteSharePrefKey(SharedPrefUtils.BLOCKED_POSITION);
                prefUtils.deleteSharePrefKey(SharedPrefUtils.IS_BLOCKED);
                prefUtils.deleteSharePrefKey(SharedPrefUtils.BLOCKED_ID);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

我的初始列表大小 50

删除列表大小后

46

Recyclerview只是在item

之后从屏幕直观中删除了第一个adapter.notifyItemRangeChanged(0,list.size());

我仍然可以看到我的列表中实际删除的其他项目。

0 个答案:

没有答案