question: private void correctTooSmall ( int childCount ) { if ( mFirstPosition == 0 && childCount > 0 ) { final View firstChild = getChildAt ( 0 ) ; final int firstLeft = firstChild . getLeft ( ) ; final int start = mListPadding . left ; final int end = ( getRight ( ) - getLeft ( ) ) - mListPadding . right ; int leftOffset = firstLeft - start ; View lastChild = getChildAt ( childCount - 1 ) ; final int lastRight = lastChild . getRight ( ) ; int lastPosition = mFirstPosition + childCount - 1 ; if ( leftOffset > 0 ) { if ( lastPosition < mItemCount - 1 || lastRight > end ) { if ( lastPosition == mItemCount - 1 ) { leftOffset = Math . min ( leftOffset , lastRight - end ) ; } offsetChildrenLeftAndRight ( - leftOffset ) ; if ( lastPosition < mItemCount - 1 ) { fillRight ( lastPosition + 1 , lastChild . getRight ( ) + mDividerWidth ) ; adjustViewsLeftOrRight ( ) ; } } else if ( lastPosition == mItemCount - 1 ) { adjustViewsLeftOrRight ( ) ; } } } }
target:  Check if we have dragged the right of the list too low (we have pushed the right element off the right of the screen when we did not need to). Correct by sliding everything back up.