@Override public void onViewRecycled(ViewHolder holder) { //noinspection unchecked mapViewTypeToAdapterViewTypeDelegate.get(holder.getItemViewType()).unbindViewHolder(holder); }
private void unbindChildView(View childItemView) { ChildViewState childViewState = getChildViewState(childItemView); AdapterViewTypeDelegate delegate = childAdapterViewTypeDelegates.get(childViewState.viewItem.viewType); delegate.unbindViewHolder(childViewState.childViewHolder); childViewHolderCache.get(childViewState.viewItem.viewType).offer(childViewState.childViewHolder); childViewState.clearViewState(); }
delegates.get(0).unbindViewHolder(childViewHolders.get(0)); delegates.get(1).unbindViewHolder(childViewHolders.get(1)); delegates.get(0).unbindViewHolder(childViewHolders.get(2)); delegates.get(1).unbindViewHolder(childViewHolders.get(3));
delegates.get(0).unbindViewHolder(childViewHolders.get(0)); delegates.get(1).unbindViewHolder(childViewHolders.get(1)); delegates.get(0).unbindViewHolder(childViewHolders.get(2)); delegates.get(1).unbindViewHolder(childViewHolders.get(3));
delegates.get(0).unbindViewHolder(childViewHolders.get(0)); delegates.get(1).unbindViewHolder(childViewHolders.get(1)); delegates.get(0).unbindViewHolder(childViewHolders.get(2)); delegates.get(1).unbindViewHolder(childViewHolders.get(3));
@Test public void unbindViewHolder_shouldClearViewHolder_whenProcessingExistingViewHolder() { // GIVEN List<AdapterViewTypeDelegate> delegates = singletonList(createValidAdapterViewTypeDelegate(0)); // Delegate already bound to single child item GroupViewHolder groupHolder = createGroupViewHolder(); List<ViewItem> viewItems = singletonList(createViewItem(new ChildModel(0, ""), 0)); List<RecyclerView.ViewHolder> childViewHolders = singletonList(createChildViewHolder("0")); TargetGroupAdapterViewTypeDelegate target = createTargetDelegateWithState(delegates, viewItems, childViewHolders, groupHolder); // EXPECT delegates.get(0).unbindViewHolder(childViewHolders.get(0)); replayAll(); // WHEN target.unbindViewHolder(groupHolder); // THEN assertThat(groupHolder.viewGroup.getChildCount(), is(0)); verifyAll(); }
delegates.get(0).unbindViewHolder(childViewHolders.get(0)); delegates.get(0).unbindViewHolder(childViewHolders.get(1));