code: @UiThread
      public void notifyChildRangeChanged(int parentPosition, int childPositionStart, int itemCount) {
          P parent = mParentList.get(parentPosition);
          int flatParentPosition = getFlatParentPosition(parentPosition);
          ExpandableWrapper<P, C> parentWrapper = mFlatItemList.get(flatParentPosition);
          parentWrapper.setParent(parent);
          if (parentWrapper.isExpanded()) {
              int flatChildPosition = flatParentPosition + childPositionStart + 1;
              for (int i = 0; i < itemCount; i++) {
                  ExpandableWrapper<P, C> child
                          = parentWrapper.getWrappedChildList().get(childPositionStart + i);
                  mFlatItemList.set(flatChildPosition + i, child);
              }
              notifyItemRangeChanged(flatChildPosition, itemCount);
          }
      }
docs: Notify any registered observers that the parent at {@code parentPosition} has
  {@code itemCount} children starting at {@code childPositionStart} that have changed.
  <p>
  This is an item change event, not a structural change event. It indicates that any
  The parent at {@code childPositionStart} retains the same identity.
  reflection of the set of {@code itemCount} children starting at {@code childPositionStart}
  are out of date and should be updated.
  
  @param parentPosition Position of the parent who has a child that has changed
  @param childPositionStart Position of the first child that has changed
  @param itemCount number of children changed