Lines Matching refs:holder

647                         Log.d(TAG, "assuming view holder cannot be find because it is hidden");
1408 ViewHolder holder = getChildViewHolder(view);
1409 if (holder != null && holder.mShadowingHolder != null) {
1410 ViewHolder shadowingHolder = holder.mShadowingHolder;
2768 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getChildAt(i));
2769 if (holder.shouldIgnore() || (holder.isInvalid() && !mAdapter.hasStableIds())) {
2772 final View view = holder.itemView;
2773 mState.mPreLayoutHolderMap.put(holder, new ItemHolderInfo(holder,
2789 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getChildAt(i));
2790 if (holder.isChanged() && !holder.isRemoved() && !holder.shouldIgnore()) {
2791 long key = getChangedHolderKey(holder);
2792 mState.mOldChangedHolders.put(key, holder);
2793 mState.mPreLayoutHolderMap.remove(holder);
2812 ViewHolder holder = mState.mPreLayoutHolderMap.keyAt(j);
2813 if (holder.itemView == child) {
2833 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getChildAt(i));
2834 if (holder.isChanged() && !holder.isRemoved() && !holder.shouldIgnore()) {
2835 long key = getChangedHolderKey(holder);
2836 mState.mOldChangedHolders.put(key, holder);
2837 mState.mPreLayoutHolderMap.remove(holder);
2861 ViewHolder holder = getChildViewHolderInt(mChildHelper.getChildAt(i));
2862 if (holder.shouldIgnore()) {
2865 final View view = holder.itemView;
2866 long key = getChangedHolderKey(holder);
2868 newChangedHolders.put(key, holder);
2870 mState.mPostLayoutHolderMap.put(holder, new ItemHolderInfo(holder,
2883 View disappearingItemView = disappearingItem.holder.itemView;
2884 mRecycler.unscrapView(disappearingItem.holder);
2940 Log.e(TAG, "cannot find old changed holder in changed scrap :/" + oldHolder);
2972 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getChildAt(i));
2973 if (holder.shouldIgnore()) {
2976 final int pos = holder.getLayoutPosition();
2994 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getChildAt(i));
2995 if (holder.shouldIgnore()) {
2998 final int pos = holder.getLayoutPosition();
3025 long getChangedHolderKey(ViewHolder holder) {
3026 return mAdapter.hasStableIds() ? holder.getItemId() : holder.mPosition;
3084 View disappearingItemView = disappearingItem.holder.itemView;
3085 addAnimatingView(disappearingItem.holder);
3090 if (!disappearingItem.holder.isRemoved() && (oldLeft != newLeft || oldTop != newTop)) {
3091 disappearingItem.holder.setIsRecyclable(false);
3096 Log.d(TAG, "DISAPPEARING: " + disappearingItem.holder +
3099 if (mItemAnimator.animateMove(disappearingItem.holder, oldLeft, oldTop,
3105 Log.d(TAG, "REMOVED: " + disappearingItem.holder +
3108 disappearingItem.holder.setIsRecyclable(false);
3109 if (mItemAnimator.animateRemove(disappearingItem.holder)) {
3284 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getUnfilteredChildAt(i));
3285 if (DEBUG && holder.mPosition == -1 && !holder.isRemoved()) {
3286 throw new IllegalStateException("view holder cannot have position -1 unless it"
3289 if (!holder.shouldIgnore()) {
3290 holder.saveOldPosition();
3298 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getUnfilteredChildAt(i));
3299 if (!holder.shouldIgnore()) {
3300 holder.clearOldPosition();
3320 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getUnfilteredChildAt(i));
3321 if (holder == null || holder.mPosition < start || holder.mPosition > end) {
3325 Log.d(TAG, "offsetPositionRecordsForMove attached child " + i + " holder " +
3326 holder);
3328 if (holder.mPosition == from) {
3329 holder.offsetPosition(to - from, false);
3331 holder.offsetPosition(inBetweenOffset, false);
3343 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getUnfilteredChildAt(i));
3344 if (holder != null && !holder.shouldIgnore() && holder.mPosition >= positionStart) {
3346 Log.d(TAG, "offsetPositionRecordsForInsert attached child " + i + " holder " +
3347 holder + " now at position " + (holder.mPosition + itemCount));
3349 holder.offsetPosition(itemCount, false);
3362 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getUnfilteredChildAt(i));
3363 if (holder != null && !holder.shouldIgnore()) {
3364 if (holder.mPosition >= positionEnd) {
3367 " holder " + holder + " now at position " +
3368 (holder.mPosition - itemCount));
3370 holder.offsetPosition(-itemCount, applyToPreLayout);
3372 } else if (holder.mPosition >= positionStart) {
3375 " holder " + holder + " now REMOVED");
3377 holder.flagRemovedAndOffsetPosition(positionStart - 1, -itemCount,
3399 final ViewHolder holder = getChildViewHolderInt(child);
3400 if (holder == null || holder.shouldIgnore()) {
3403 if (holder.mPosition >= positionStart && holder.mPosition < positionEnd) {
3406 holder.addFlags(ViewHolder.FLAG_UPDATE);
3407 holder.addChangePayload(payload);
3409 holder.addFlags(ViewHolder.FLAG_CHANGED);
3421 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getChildAt(i));
3423 if (holder == null || holder.shouldIgnore()) {
3426 if (holder.isRemoved() || holder.isInvalid()) {
3428 } else if (holder.needsUpdate()) {
3429 final int type = mAdapter.getItemViewType(holder.mPosition);
3430 if (holder.getItemViewType() == type) {
3432 if (!holder.isChanged() || !supportsChangeAnimations()) {
3433 mAdapter.bindViewHolder(holder, holder.mPosition);
3437 // holder for the new contents.
3457 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getUnfilteredChildAt(i));
3458 if (holder != null && !holder.shouldIgnore()) {
3459 holder.addFlags(ViewHolder.FLAG_ADAPTER_POSITION_UNKNOWN);
3472 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getUnfilteredChildAt(i));
3473 if (holder != null && !holder.shouldIgnore()) {
3474 holder.addFlags(ViewHolder.FLAG_UPDATE | ViewHolder.FLAG_INVALID);
3535 final ViewHolder holder = getChildViewHolderInt(child);
3536 return holder != null ? holder.getAdapterPosition() : NO_POSITION;
3550 final ViewHolder holder = getChildViewHolderInt(child);
3551 return holder != null ? holder.getLayoutPosition() : NO_POSITION;
3564 final ViewHolder holder = getChildViewHolderInt(child);
3565 return holder != null ? holder.getItemId() : NO_ID;
3616 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getUnfilteredChildAt(i));
3617 if (holder != null && !holder.isRemoved() && getAdapterPositionFor(holder) == position) {
3618 return holder;
3627 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getUnfilteredChildAt(i));
3628 if (holder != null && !holder.isRemoved()) {
3630 if (holder.mPosition == position) {
3631 return holder;
3633 } else if (holder.getLayoutPosition() == position) {
3634 return holder;
3658 final ViewHolder holder = getChildViewHolderInt(mChildHelper.getUnfilteredChildAt(i));
3659 if (holder != null && holder.getItemId() == id) {
3660 return holder;
3921 ViewHolder holder = getChildViewHolder(view);
3922 if (holder != null && holder.mShadowingHolder != null) {
3923 View shadowingView = holder.mShadowingHolder.itemView;
4337 * Checks whether a given view holder can be used for the provided position.
4339 * @param holder ViewHolder
4342 boolean validateViewHolderForOffsetPosition(ViewHolder holder) {
4343 // if it is a removed holder, nothing to verify since we cannot ask adapter anymore
4345 if (holder.isRemoved()) {
4348 if (holder.mPosition < 0 || holder.mPosition >= mAdapter.getItemCount()) {
4349 throw new IndexOutOfBoundsException("Inconsistency detected. Invalid view holder "
4350 + "adapter position" + holder);
4354 final int type = mAdapter.getItemViewType(holder.mPosition);
4355 if (type != holder.getItemViewType()) {
4360 return holder.getItemId() == mAdapter.getItemId(holder.mPosition);
4381 ViewHolder holder = getChildViewHolderInt(view);
4382 if (holder == null) {
4393 holder.mOwnerRecyclerView = RecyclerView.this;
4394 mAdapter.bindViewHolder(holder, offsetPosition);
4397 holder.mPreLayoutPosition = position;
4400 final ViewGroup.LayoutParams lp = holder.itemView.getLayoutParams();
4404 holder.itemView.setLayoutParams(rvLayoutParams);
4407 holder.itemView.setLayoutParams(rvLayoutParams);
4413 rvLayoutParams.mViewHolder = holder;
4414 rvLayoutParams.mPendingInvalidate = holder.itemView.getParent() == null;
4470 ViewHolder holder = null;
4473 holder = getChangedScrapViewForPosition(position);
4474 fromScrap = holder != null;
4477 if (holder == null) {
4478 holder = getScrapViewForPosition(position, INVALID_TYPE, dryRun);
4479 if (holder != null) {
4480 if (!validateViewHolderForOffsetPosition(holder)) {
4485 holder.addFlags(ViewHolder.FLAG_INVALID);
4486 if (holder.isScrap()) {
4487 removeDetachedView(holder.itemView, false);
4488 holder.unScrap();
4489 } else if (holder.wasReturnedFromScrap()) {
4490 holder.clearReturnedFromScrapFlag();
4492 recycleViewHolderInternal(holder);
4494 holder = null;
4500 if (holder == null) {
4511 holder = getScrapViewForId(mAdapter.getItemId(offsetPosition), type, dryRun);
4512 if (holder != null) {
4514 holder.mPosition = offsetPosition;
4518 if (holder == null && mViewCacheExtension != null) {
4524 holder = getChildViewHolder(view);
4525 if (holder == null) {
4528 } else if (holder.shouldIgnore()) {
4535 if (holder == null) { // fallback to recycler
4542 holder = getRecycledViewPool().getRecycledView(type);
4543 if (holder != null) {
4544 holder.resetInternal();
4546 invalidateDisplayListInt(holder);
4550 if (holder == null) {
4551 holder = mAdapter.createViewHolder(RecyclerView.this, type);
4558 if (mState.isPreLayout() && holder.isBound()) {
4560 holder.mPreLayoutPosition = position;
4561 } else if (!holder.isBound() || holder.needsUpdate() || holder.isInvalid()) {
4562 if (DEBUG && holder.isRemoved()) {
4563 throw new IllegalStateException("Removed holder should be bound and it should"
4564 + " come here only in pre-layout. Holder: " + holder);
4567 holder.mOwnerRecyclerView = RecyclerView.this;
4568 mAdapter.bindViewHolder(holder, offsetPosition);
4569 attachAccessibilityDelegate(holder.itemView);
4572 holder.mPreLayoutPosition = position;
4576 final ViewGroup.LayoutParams lp = holder.itemView.getLayoutParams();
4580 holder.itemView.setLayoutParams(rvLayoutParams);
4583 holder.itemView.setLayoutParams(rvLayoutParams);
4587 rvLayoutParams.mViewHolder = holder;
4589 return holder.itemView;
4606 private void invalidateDisplayListInt(ViewHolder holder) {
4607 if (holder.itemView instanceof ViewGroup) {
4608 invalidateDisplayListInt((ViewGroup) holder.itemView, false);
4646 ViewHolder holder = getChildViewHolderInt(view);
4647 if (holder.isTmpDetached()) {
4650 if (holder.isScrap()) {
4651 holder.unScrap();
4652 } else if (holder.wasReturnedFromScrap()){
4653 holder.clearReturnedFromScrapFlag();
4655 recycleViewHolderInternal(holder);
4703 void recycleViewHolderInternal(ViewHolder holder) {
4704 if (holder.isScrap() || holder.itemView.getParent() != null) {
4707 + holder.isScrap() + " isAttached:"
4708 + (holder.itemView.getParent() != null));
4711 if (holder.isTmpDetached()) {
4713 + "from RecyclerView before it can be recycled: " + holder);
4716 if (holder.shouldIgnore()) {
4717 throw new IllegalArgumentException("Trying to recycle an ignored view holder. You"
4721 final boolean transientStatePreventsRecycling = holder
4725 && mAdapter.onFailedToRecycleView(holder);
4728 if (DEBUG && mCachedViews.contains(holder)) {
4730 holder);
4732 if (forceRecycle || holder.isRecyclable()) {
4733 if (!holder.hasAnyOfTheFlags(ViewHolder.FLAG_INVALID | ViewHolder.FLAG_REMOVED |
4741 mCachedViews.add(holder);
4746 addViewHolderToRecycledViewPool(holder);
4750 Log.d(TAG, "trying to recycle a non-recycleable holder. Hopefully, it will "
4753 // even if the holder is not removed, we still call this method so that it is removed
4754 // from view holder lists.
4755 mState.onViewRecycled(holder);
4757 holder.mOwnerRecyclerView = null;
4761 void addViewHolderToRecycledViewPool(ViewHolder holder) {
4762 ViewCompat.setAccessibilityDelegate(holder.itemView, null);
4763 dispatchViewRecycled(holder);
4764 holder.mOwnerRecyclerView = null;
4765 getRecycledViewPool().putRecycledView(holder);
4774 final ViewHolder holder = getChildViewHolderInt(view);
4775 holder.mScrapContainer = null;
4776 holder.clearReturnedFromScrapFlag();
4777 recycleViewHolderInternal(holder);
4790 final ViewHolder holder = getChildViewHolderInt(view);
4791 holder.setScrapContainer(this);
4792 if (!holder.isChanged() || !supportsChangeAnimations()) {
4793 if (holder.isInvalid() && !holder.isRemoved() && !mAdapter.hasStableIds()) {
4798 mAttachedScrap.add(holder);
4803 mChangedScrap.add(holder);
4813 void unscrapView(ViewHolder holder) {
4814 if (!holder.isChanged() || !supportsChangeAnimations() || mChangedScrap == null) {
4815 mAttachedScrap.remove(holder);
4817 mChangedScrap.remove(holder);
4819 holder.mScrapContainer = null;
4820 holder.clearReturnedFromScrapFlag();
4843 final ViewHolder holder = mChangedScrap.get(i);
4844 if (!holder.wasReturnedFromScrap() && holder.getLayoutPosition() == position) {
4845 holder.addFlags(ViewHolder.FLAG_RETURNED_FROM_SCRAP);
4846 return holder;
4855 final ViewHolder holder = mChangedScrap.get(i);
4856 if (!holder.wasReturnedFromScrap() && holder.getItemId() == id) {
4857 holder.addFlags(ViewHolder.FLAG_RETURNED_FROM_SCRAP);
4858 return holder;
4880 final ViewHolder holder = mAttachedScrap.get(i);
4881 if (!holder.wasReturnedFromScrap() && holder.getLayoutPosition() == position
4882 && !holder.isInvalid() && (mState.mInPreLayout || !holder.isRemoved())) {
4883 if (type != INVALID_TYPE && holder.getItemViewType() != type) {
4885 " wrong view type! (found " + holder.getItemViewType() +
4889 holder.addFlags(ViewHolder.FLAG_RETURNED_FROM_SCRAP);
4890 return holder;
4905 final ViewHolder holder = mCachedViews.get(i);
4908 if (!holder.isInvalid() && holder.getLayoutPosition() == position) {
4914 ") found match in cache: " + holder);
4916 return holder;
4926 final ViewHolder holder = mAttachedScrap.get(i);
4927 if (holder.getItemId() == id && !holder.wasReturnedFromScrap()) {
4928 if (type == holder.getItemViewType()) {
4929 holder.addFlags(ViewHolder.FLAG_RETURNED_FROM_SCRAP);
4930 if (holder.isRemoved()) {
4940 holder.setFlags(ViewHolder.FLAG_UPDATE, ViewHolder.FLAG_UPDATE |
4944 return holder;
4948 removeDetachedView(holder.itemView, false);
4949 quickRecycleScrapView(holder.itemView);
4957 final ViewHolder holder = mCachedViews.get(i);
4958 if (holder.getItemId() == id) {
4959 if (type == holder.getItemViewType()) {
4963 return holder;
4972 void dispatchViewRecycled(ViewHolder holder) {
4974 mRecyclerListener.onViewRecycled(holder);
4977 mAdapter.onViewRecycled(holder);
4980 mState.onViewRecycled(holder);
4982 if (DEBUG) Log.d(TAG, "dispatchViewRecycled: " + holder);
5004 final ViewHolder holder = mCachedViews.get(i);
5005 if (holder == null || holder.mPosition < start || holder.mPosition > end) {
5008 if (holder.mPosition == from) {
5009 holder.offsetPosition(to - from, false);
5011 holder.offsetPosition(inBetweenOffset, false);
5014 Log.d(TAG, "offsetPositionRecordsForMove cached child " + i + " holder " +
5015 holder);
5023 final ViewHolder holder = mCachedViews.get(i);
5024 if (holder != null && holder.getLayoutPosition() >= insertedAt) {
5026 Log.d(TAG, "offsetPositionRecordsForInsert cached " + i + " holder " +
5027 holder + " now at position " + (holder.mPosition + count));
5029 holder.offsetPosition(count, true);
5044 final ViewHolder holder = mCachedViews.get(i);
5045 if (holder != null) {
5046 if (holder.getLayoutPosition() >= removedEnd) {
5049 " holder " + holder + " now at position " +
5050 (holder.mPosition - count));
5052 holder.offsetPosition(-count, applyToPreLayout);
5053 } else if (holder.getLayoutPosition() >= removedFrom) {
5055 holder.addFlags(ViewHolder.FLAG_REMOVED);
5087 final ViewHolder holder = mCachedViews.get(i);
5088 if (holder == null) {
5092 final int pos = holder.getLayoutPosition();
5094 holder.addFlags(ViewHolder.FLAG_UPDATE);
5105 final ViewHolder holder = mCachedViews.get(i);
5106 if (holder != null) {
5107 holder.addFlags(ViewHolder.FLAG_ADAPTER_POSITION_UNKNOWN);
5116 final ViewHolder holder = mCachedViews.get(i);
5117 if (holder != null) {
5118 holder.addFlags(ViewHolder.FLAG_UPDATE | ViewHolder.FLAG_INVALID);
5119 holder.addChangePayload(null);
5131 final ViewHolder holder = mCachedViews.get(i);
5132 holder.clearOldPosition();
5149 final ViewHolder holder = mCachedViews.get(i);
5150 LayoutParams layoutParams = (LayoutParams) holder.itemView.getLayoutParams();
5241 * @param holder The ViewHolder which should be updated to represent the contents of the
5245 public abstract void onBindViewHolder(VH holder, int position);
5270 * @param holder The ViewHolder which should be updated to represent the contents of the
5276 public void onBindViewHolder(VH holder, int position, List<Object> payloads) {
5277 onBindViewHolder(holder, position);
5288 final VH holder = onCreateViewHolder(parent, viewType);
5289 holder.mItemViewType = viewType;
5291 return holder;
5301 public final void bindViewHolder(VH holder, int position) {
5302 holder.mPosition = position;
5304 holder.mItemId = getItemId(position);
5306 holder.setFlags(ViewHolder.FLAG_BOUND,
5310 onBindViewHolder(holder, position, holder.getUnmodifiedPayloads());
5311 holder.clearPayload();
5392 * @param holder The ViewHolder for the view being recycled
5394 public void onViewRecycled(VH holder) {
5416 * <code>holder.itemView.setHasTransientState(false);</code> unless you've previously called
5417 * <code>holder.itemView.setHasTransientState(true);</code>. Each
5423 * @param holder The ViewHolder containing the View that could not be recycled due to its
5431 public boolean onFailedToRecycleView(VH holder) {
5443 * @param holder Holder of the view being attached
5445 public void onViewAttachedToWindow(VH holder) {
5455 * @param holder Holder of the view being detached
5457 public void onViewDetachedFromWindow(VH holder) {
6276 final ViewHolder holder = getChildViewHolderInt(child);
6277 if (disappearing || holder.isRemoved()) {
6289 if (holder.wasReturnedFromScrap() || holder.isScrap()) {
6290 if (holder.isScrap()) {
6291 holder.unScrap();
6293 holder.clearReturnedFromScrapFlag();
6324 holder.itemView.invalidate();
6794 * Note that calling this method removes all information in the view holder.
8147 * @param holder The ViewHolder containing the view that was recycled
8149 public void onViewRecycled(ViewHolder holder);
8194 // The item that this holder is shadowing during an item change event/animation
8196 // The item that is shadowing this holder during an item change event/animation
8640 * Returns whether we have animations referring to this view holder or not.
9550 void onViewRecycled(ViewHolder holder) {
9551 mPreLayoutHolderMap.remove(holder);
9552 mPostLayoutHolderMap.remove(holder);
9554 removeFrom(mOldChangedHolders, holder);
9556 mDisappearingViewsInLayoutPass.remove(holder.itemView);
9557 // holder cannot be in new list.
9560 public void onViewIgnored(ViewHolder holder) {
9561 onViewRecycled(holder);
9564 private void removeFrom(ArrayMap<Long, ViewHolder> holderMap, ViewHolder holder) {
9566 if (holder == holderMap.valueAt(i)) {
9853 * @param holder The item that is being removed.
9857 abstract public boolean animateRemove(ViewHolder holder);
9878 * @param holder The item that is being added.
9882 abstract public boolean animateAdd(ViewHolder holder);
9898 * @param holder The item that is being moved.
9902 abstract public boolean animateMove(ViewHolder holder, int fromX, int fromY,
9924 * @param fromLeft Left of the old view holder
9925 * @param fromTop Top of the old view holder
9926 * @param toLeft Left of the new view holder
9927 * @param toTop Top of the new view holder
10217 ViewHolder holder;
10220 ItemHolderInfo(ViewHolder holder, int left, int top, int right, int bottom) {
10221 this.holder = holder;