code: @UiThread
      public void notifyChildRangeRemoved(int parentPosition, int childPositionStart, int itemCount) {
          int flatParentPosition = getFlatParentPosition(parentPosition);
          ExpandableWrapper<P, C> parentWrapper = mFlatItemList.get(flatParentPosition);
          parentWrapper.setParent(mParentList.get(parentPosition));
  
          if (parentWrapper.isExpanded()) {
              for (int i = 0; i < itemCount; i++) {
                  mFlatItemList.remove(flatParentPosition + childPositionStart + 1);
              }
              notifyItemRangeRemoved(flatParentPosition + childPositionStart + 1, itemCount);
          }
      }
docs: Notify any registered observers that the parent located at {@code parentPosition}
  has {@code itemCount} children that have been removed from the data set, previously
  located at {@code childPositionStart} onwards. The child previously located at and
  after {@code childPositionStart} may now be found at {@code childPositionStart - itemCount}.
  <p>
  This is a structural change event. Representations of other existing items in the
  data set are still considered up to date and will not be rebound, though their positions
  may be altered.
  
  @param parentPosition Position of the parent which has a child removed from, relative
  to the list of parents only.
  @param childPositionStart Position of the first child that has been removed, relative
  to children of the parent specified by {@code parentPosition} only.
  @param itemCount number of children removed