How recycler view takes care of the positions in “mAttachedScrap and mChangedScrap”? As both of scraps are ArrayList<ViewHolder>. What if viewHolders which are visible are in the 100th to 105th position? I didn’t quite understand the code there. “getScrapOrHiddenOrCachedHolderForPosition()” you can check this method. Also, what is GapWorker?