public int collapse(@IntRange(from = 0) int position, boolean animate, boolean notify) {
        position -= getHeaderLayoutCount();

        IExpandable expandable = getExpandableItem(position);
        if (expandable == null) {
            return 0;
        }
        int subItemCount = recursiveCollapse(position);
        expandable.setExpanded(false);
        int parentPos = position + getHeaderLayoutCount();
        if (notify) {
            if (animate) {
                notifyItemChanged(parentPos);
                notifyItemRangeRemoved(parentPos + 1, subItemCount);
            } else {
                notifyDataSetChanged();
            }
        }
        return subItemCount;
    }
Collapse an expandable item that has been expanded..

@param position the position of the item, which includes the header layout count.
@param animate  collapse with animation or not.
@param notify   notify the recyclerView refresh UI or not.
@return the number of subItems collapsed.
common/src/main/java/com/sxjs/common/base/baseadapter/BaseQuickAdapter.java