@NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { if (mExpandableItemAdapter == null) { throw new IllegalStateException(); } final int maskedViewType = (viewType & (~VIEW_TYPE_FLAG_IS_GROUP)); final RecyclerView.ViewHolder holder; if ((viewType & VIEW_TYPE_FLAG_IS_GROUP) != 0) { holder = mExpandableItemAdapter.onCreateGroupViewHolder(parent, maskedViewType); } else { holder = mExpandableItemAdapter.onCreateChildViewHolder(parent, maskedViewType); } if (holder instanceof ExpandableItemViewHolder) { ((ExpandableItemViewHolder) holder).setExpandStateFlags(STATE_FLAG_INITIAL_VALUE); } return holder; }