0
 public class Adapter extends RecyclerView.Adapter implements ListCallBack {
     private static final int parent_ = 1;
     private static final int child_ = 2;
     private static final int custom_ = 3;
     private final Context context;
     private ArrayList<ItemParent> parentArrayList = new ArrayList<>();
     private ArrayList<Object> childArrayList = new ArrayList<>();

     public Adapter(Context mContex){
         this.context = mContex;
     }

     @Override
     public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
         LayoutInflater inflater = LayoutInflater.from(parent.getContext());
         RecyclerView.ViewHolder viewHolder = null;
         switch (viewType){
             case parent_:
                 viewHolder = new 
ParentHolder(inflater.inflate(R.layout.item_parent, parent, false), this);
                 break;
             case custom_:{
                 viewHolder = new CustomHolder(inflater.inflate(R.layout.item_custom,parent,false));
             }
             case child_:{
                     viewHolder = new childHolder(inflater.inflate(R.layout.item_child,parent,false));
             }
         }
         return viewHolder;
     }

     @Override
     public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
         if (getItemViewType(position) == parent_) {
             ((ParentHolder) holder).bind((ItemParent) childArrayList.get(position));
         } else if (getItemViewType(position) == child_) {
             ((ChildHolder) holder).bind((ItemChild) childArrayList.get(position));
         }
     }

     @Override
     public int getItemCount() {
         return childArrayList.size();
     }

     @Override
     public int getItemViewType(int position) {
         if (getItem(position) instanceof ItemParent)
             return parent_;
         else if (getItem(position) instanceof ItemChild)
             return child_;
         else
             return -1;
     }

     private Object getItem(int position) {
         return childArrayList.get(position);
     }

     private void generateItems() {
         childArrayList = new ArrayList<>();

         for (ItemParent itemParent : parentArrayList) {
             childArrayList.add(itemParent);
             if (itemParent.isExpanded()) {
                 for (ItemChild item : itemParent.getItems()) {
                     childArrayList.add(item);
                 }
             }
         }
         notifyDataSetChanged();
     }

     public void setData(ArrayList<ItemParent> itemParents) {
         this.parentArrayList = itemParents;
         generateItems();
     }

     @Override
     public void setExpanded(int groupId, boolean expanded) {
         for (ItemParent itemParent : parentArrayList) {
             if (itemParent.getId() == groupId)
                 itemParent.setExpanded(expanded);
         }

         generateItems();
     }
 }

как покласть в него на позицию 4 другой cardview?

ahgpoug
  • 1,184
  • другой кард вью? в плане что визуально он будет отличаться от остальных? тогда вам надо делать второй ViewHolder – Sviat Volkov Nov 04 '17 at 09:54
  • да,другой cardview. сделал,просто не совсем понимаю как установить его в определенную позицию – anton ruban Nov 04 '17 at 09:58

0 Answers0