question: private boolean goTo ( long day , boolean animate , boolean setSelected , boolean forceScroll ) { if ( setSelected ) { mSelectedDay . setTimeInMillis ( day ) ; } mTempDay . setTimeInMillis ( day ) ; final int position = getPositionFromDay ( day ) ; View child ; int i = 0 ; int top = 0 ; do { child = getChildAt ( i ++ ) ; if ( child == null ) { break ; } top = child . getTop ( ) ; } while ( top < 0 ) ; int selectedPosition ; if ( child != null ) { selectedPosition = getPositionForView ( child ) ; } else { selectedPosition = 0 ; } if ( setSelected ) { mAdapter . setSelectedDay ( mSelectedDay ) ; } if ( position != selectedPosition || forceScroll ) { setMonthDisplayed ( mTempDay ) ; mPreviousScrollState = OnScrollListener . SCROLL_STATE_FLING ; if ( animate ) { smoothScrollToPositionFromTop ( position , LIST_TOP_OFFSET , GOTO_SCROLL_DURATION ) ; return true ; } else { postSetSelection ( position ) ; } } else if ( setSelected ) { setMonthDisplayed ( mSelectedDay ) ; } return false ; }
target:  This moves to the specified time in the view. If the time is not already in range it will move the list so that the first of the month containing the time is at the top of the view. If the new time is already in view the list will not be scrolled unless forceScroll is true. This time may optionally be highlighted as selected as well.