Scroll a ListView by pixels in Android
android, listview, scroll
Solution
The supported way to scroll a `ListView` widget is:
`mListView.smoothScrollToPosition(position);`
http://developer.android.com/reference/android/widget/AbsListView.html#smoothScrollToPosition(int)
However since you mentioned specifically that you would like to offset the view vertically, you must call:
`mListView.setSelectionFromTop(position, yOffset);`
http://developer.android.com/reference/android/widget/ListView.html#setSelectionFromTop(int,%20int)
Note that you can also use `smoothScrollByOffset(yOffset)`. However it is only supported on API >= 11
http://developer.android.com/reference/android/widget/ListView.html#smoothScrollByOffset(int)
Problem
I want to scroll the a `ListView` in Android by number of pixels. For example I want to scroll the list 10 pixels down (so that the first item on the list has its top 10 pixel rows hidden). I thought the obviously visible `scrollBy` or `scrollTo` methods on ListView would do the job, but they don't, instead they scroll the whole list wrongly (In fact, the `getScrollY` always return zero even though I have scrolled the list using my finger.) What I'm doing is I'm capturing Trackball events and I want to scroll the listview smoothly according to the motion of the trackball.