code: @UiThread
      public void notifyChildChanged(int parentPosition, int childPosition) {
          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 + childPosition + 1;
              ExpandableWrapper<P, C> child = parentWrapper.getWrappedChildList().get(childPosition);
              mFlatItemList.set(flatChildPosition, child);
              notifyItemChanged(flatChildPosition);
          }
      }
docs: Notify any registered observers that the parent at {@code parentPosition} has
  a child located at {@code childPosition} that has changed.
  <p>
  This is an item change event, not a structural change event. It indicates that any
  reflection of the data at {@code childPosition} is out of date and should be updated.
  The parent at {@code childPosition} retains the same identity.
  
  @param parentPosition Position of the parent which has a child that has changed
  @param childPosition Position of the child that has changed