@Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return mapViewTypeToAdapterViewTypeDelegate.get(viewType).createViewHolder(parent); }
private RecyclerView.ViewHolder getChildViewHolder(int viewType, ViewGroup parent) { final Queue<RecyclerView.ViewHolder> viewHolders = childViewHolderCache.get(viewType); if (!viewHolders.isEmpty()) { return viewHolders.poll(); } RecyclerView.ViewHolder childViewHolder = childAdapterViewTypeDelegates.get(viewType).createViewHolder(parent); childViewHolder.itemView.setTag(new ChildViewState()); return childViewHolder; }
private TargetGroupAdapterViewTypeDelegate createTargetDelegateWithState(List<AdapterViewTypeDelegate> delegates, List<ViewItem> viewItems, List<RecyclerView.ViewHolder> childViewHolders, GroupViewHolder groupHolder) { for (int i = 0; i < viewItems.size(); i++) { ViewItem viewItem = viewItems.get(i); RecyclerView.ViewHolder childViewHolder = childViewHolders.get(i); AdapterViewTypeDelegate delegate = delegates.get(viewItem.viewType); expect(delegate.createViewHolder(groupHolder.viewGroup)).andReturn(childViewHolder).times(1); delegate.bindViewHolder(childViewHolder, viewItem.model); } replayAll(); TargetGroupAdapterViewTypeDelegate target = new TargetGroupAdapterViewTypeDelegate(delegates); target.bindViewHolder(groupHolder, viewItems); resetAll(); return target; }
expect(delegates.get(0).createViewHolder(groupHolder.viewGroup)).andReturn(childViewHolders.get(0)); expect(delegates.get(1).createViewHolder(groupHolder.viewGroup)).andReturn(childViewHolders.get(1)); delegates.get(0).bindViewHolder(childViewHolders.get(0), viewItems.get(0).model); delegates.get(1).bindViewHolder(childViewHolders.get(1), viewItems.get(1).model);
expect(delegates.get(0).createViewHolder(groupHolder.viewGroup)).andReturn(newChildViewHolders.get(1)).times(1); expect(delegates.get(0).createViewHolder(groupHolder.viewGroup)).andReturn(newChildViewHolders.get(2)).times(1);
expect(delegates.get(0).createViewHolder(groupHolder.viewGroup)).andReturn(newChildViewHolders.get(1)).times(1); expect(delegates.get(0).createViewHolder(groupHolder.viewGroup)).andReturn(newChildViewHolders.get(3)).times(1);