title: Setting ListView scroll position nicely in Android
body: <p>I am aware of <code>setSelection()</code>, <code>setSelectionFromTop()</code>, and <code>setSelectionAfterHeaderView()</code>, but none of them seems to do what I want.</p>
  
  <p>Given an item in the list, I want to scroll so that it is in view.  If the item is above the visible window of the list, I want to scroll until the item is the first visible item in the list; if the item is below the visible window, I want it to scroll up until it is the last visible item in the list.  If the item is already visible, I don't want any scrolling to occur.</p>
  
  <p>How do I go about this?</p>