public void setHideWhenEmpty(boolean hide) { if (hideWhenEmpty == hide) return; hideWhenEmpty = hide; refreshEmptyState(); }
@Override public void onItemInserted(@NonNull Group group, int position) { super.onItemInserted(group, position); refreshEmptyState(); }
@Override public void onItemRemoved(@NonNull Group group, int position) { super.onItemRemoved(group, position); refreshEmptyState(); }
@Override public void onItemRangeRemoved(@NonNull Group group, int positionStart, int itemCount) { super.onItemRangeRemoved(group, positionStart, itemCount); refreshEmptyState(); }
@Override public void onItemRangeInserted(@NonNull Group group, int positionStart, int itemCount) { super.onItemRangeInserted(group, positionStart, itemCount); refreshEmptyState(); }
/** * Optional. Set a placeholder for when the section's body is empty. * <p> * If setHideWhenEmpty(true) is set, then the empty placeholder will not be shown. * * @param placeholder A placeholder to be shown when there is no body content */ public void setPlaceholder(@NonNull Group placeholder) { //noinspection ConstantConditions if (placeholder == null) throw new NullPointerException("Placeholder can't be null. Please use removePlaceholder() instead!"); if (this.placeholder != null) { removePlaceholder(); } this.placeholder = placeholder; refreshEmptyState(); }
/** * Overloaded version of update method in which you can pass your own DiffUtil.DiffResult * @param newBodyGroups The new content of the section * @param diffResult */ public void update(@NonNull final Collection<? extends Group> newBodyGroups, DiffUtil.DiffResult diffResult) { super.removeAll(children); children.clear(); children.addAll(newBodyGroups); super.addAll(newBodyGroups); diffResult.dispatchUpdatesTo(listUpdateCallback); refreshEmptyState(); }
@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 removeAll(@NonNull Collection<? extends Group> groups) { if (groups.isEmpty()) { return; } super.removeAll(groups); for (Group group : groups) { int position = getItemCountBeforeGroup(group); children.remove(group); notifyItemRangeRemoved(position, group.getItemCount()); } 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 remove(@NonNull Group group) { super.remove(group); int position = getItemCountBeforeGroup(group); children.remove(group); notifyItemRangeRemoved(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(); }