@Override public void onInserted(int position, int count) { notifyItemRangeInserted(getHeaderItemCount() + position, count); }
private void showHeadersAndFooters() { if (isHeaderAndFooterVisible) return; isHeaderAndFooterVisible = true; notifyItemRangeInserted(0, getHeaderItemCount()); notifyItemRangeInserted(getItemCountWithoutFooter(), getFooterItemCount()); }
private void showPlaceholder() { if (isPlaceholderVisible || placeholder == null) return; isPlaceholderVisible = true; notifyItemRangeInserted(getHeaderItemCount(), placeholder.getItemCount()); }
private void notifyHeaderItemsChanged(int previousHeaderItemCount) { int newHeaderItemCount = getHeaderItemCount(); if (previousHeaderItemCount > 0) { notifyItemRangeRemoved(0, previousHeaderItemCount); } if (newHeaderItemCount > 0) { notifyItemRangeInserted(0, newHeaderItemCount); } }
@Override public void addAll(@NonNull Collection<? extends Group> groups) { if (groups.isEmpty()) return; super.addAll(groups); int position = getItemCountWithoutFooter(); this.children.addAll(groups); notifyItemRangeInserted(position, getItemCount(groups)); refreshEmptyState(); }
@Override public void addAll(int position, @NonNull Collection<? extends Group> groups) { if (groups.isEmpty()) { return; } super.addAll(position, groups); this.children.addAll(position, groups); final int notifyPosition = getHeaderItemCount() + getItemCount(children.subList(0, position)); notifyItemRangeInserted(notifyPosition, getItemCount(groups)); refreshEmptyState(); }
@Override public void add(@NonNull Group group) { super.add(group); int position = getItemCountWithoutFooter(); children.add(group); notifyItemRangeInserted(position, group.getItemCount()); refreshEmptyState(); }
@Override public void add(int position, @NonNull Group group) { super.add(position, group); children.add(position, group); final int notifyPosition = getHeaderItemCount() + getItemCount(children.subList(0, position)); notifyItemRangeInserted(notifyPosition, group.getItemCount()); refreshEmptyState(); }
private void notifyFooterItemsChanged(int previousFooterItemCount) { int newFooterItemCount = getFooterItemCount(); if (previousFooterItemCount > 0) { notifyItemRangeRemoved(getItemCountWithoutFooter(), previousFooterItemCount); } if (newFooterItemCount > 0) { notifyItemRangeInserted(getItemCountWithoutFooter(), newFooterItemCount); } }