question: private View fillSpecific ( int position , int left ) { if ( DEBUG ) Log . i ( TAG , "fillSpecific() position: " + position + " left: " + left + M_FIRST_POSITION + mFirstPosition ) ; final int numRows = mNumRows ; int motionColumnStart ; int motionColumnEnd = - 1 ; if ( ! mStackFromBottom ) { motionColumnStart = position - ( position % numRows ) ; } else { final int invertedSelection = mItemCount - 1 - position ; motionColumnEnd = mItemCount - 1 - ( invertedSelection - ( invertedSelection % numRows ) ) ; motionColumnStart = Math . max ( 0 , motionColumnEnd - numRows + 1 ) ; } final View temp = makeColumn ( mStackFromBottom ? motionColumnEnd : motionColumnStart , left , true ) ; mFirstPosition = motionColumnStart ; final View referenceView = mReferenceView ; if ( referenceView == null ) { return null ; } final int horizontalSpacing = mHorizontalSpacing ; View leftOf ; View rightOf ; if ( ! mStackFromBottom ) { leftOf = fillLeft ( motionColumnStart - numRows , referenceView . getLeft ( ) - horizontalSpacing ) ; adjustViewsLeftOrRight ( ) ; rightOf = fillRight ( motionColumnStart + numRows , referenceView . getRight ( ) + horizontalSpacing ) ; final int childCount = getChildCount ( ) ; if ( childCount > 0 ) { correctTooLeft ( numRows , horizontalSpacing , childCount ) ; } } else { rightOf = fillRight ( motionColumnEnd + numRows , referenceView . getRight ( ) + horizontalSpacing ) ; adjustViewsLeftOrRight ( ) ; leftOf = fillLeft ( motionColumnStart - 1 , referenceView . getLeft ( ) - horizontalSpacing ) ; final int childCount = getChildCount ( ) ; if ( childCount > 0 ) { correctTooRight ( numRows , horizontalSpacing , childCount ) ; } } if ( temp != null ) { return temp ; } else if ( leftOf != null ) { return leftOf ; } else { return rightOf ; } }
target:  Layout during a scroll that results from tracking motion events. Places the mMotionPosition view at the offset specified by mMotionViewLeft, and then build surrounding views from there.