question: private View fillFromSelection ( int selectedLeft , int childrenLeft , int childrenRight ) { int fadingEdgeLength = getHorizontalFadingEdgeLength ( ) ; final int selectedPosition = mSelectedPosition ; View sel ; final int leftSelectionPixel = getLeftSelectionPixel ( childrenLeft , fadingEdgeLength , selectedPosition ) ; final int rightSelectionPixel = getRightSelectionPixel ( childrenRight , fadingEdgeLength , selectedPosition ) ; sel = makeAndAddView ( selectedPosition , selectedLeft , true , mListPadding . top , true ) ; if ( sel . getRight ( ) > rightSelectionPixel ) { final int spaceBefore = sel . getLeft ( ) - leftSelectionPixel ; final int spaceAfter = sel . getRight ( ) - rightSelectionPixel ; final int offset = Math . min ( spaceBefore , spaceAfter ) ; sel . offsetLeftAndRight ( - offset ) ; } else if ( sel . getLeft ( ) < leftSelectionPixel ) { final int spaceBefore = leftSelectionPixel - sel . getLeft ( ) ; final int spaceAfter = rightSelectionPixel - sel . getRight ( ) ; final int offset = Math . min ( spaceBefore , spaceAfter ) ; sel . offsetLeftAndRight ( offset ) ; } fillBeforeAndAfter ( sel , selectedPosition ) ; if ( ! mStackFromRight ) { correctTooWide ( getChildCount ( ) ) ; } else { correctTooSmall ( getChildCount ( ) ) ; } return sel ; }
target:  Fills the grid based on positioning the new selection at a specific location. The selection may be moved so that it does not intersect the faded edges. The grid is then filled upwards and downwards from there.