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;
}

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 ; }
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 .
