question: private void pruneScrapViews ( ) { final int maxViews = mActiveViews . length ; final int viewTypeCount = mViewTypeCount ; final ArrayList < View > [ ] scrapViews = mScrapViews ; for ( int i = 0 ; i < viewTypeCount ; ++ i ) { final ArrayList < View > scrapPile = scrapViews [ i ] ; int size = scrapPile . size ( ) ; final int extras = size - maxViews ; size -- ; for ( int j = 0 ; j < extras ; j ++ ) { removeDetachedView ( scrapPile . remove ( size -- ) , false ) ; } } }
target:  Makes sure that the size of mScrapViews does not exceed the size of mActiveViews. (This can happen if an adapter does not recycle its views).