smoothScrollToPositionFromTop为Froyo ListView?

我想在屏幕上点击一个控件,并有ListView滚动,直到一个给定的行在屏幕的顶部,这个function在iOS中显得非常简单。

我在API中find了这样一个方法: http : //developer.android.com/reference/android/widget/AbsListView.html#smoothScrollToPositionFromTop (int,int)但是,这是针对API Level 11,Honeycomb的。 这意味着手机不能使用它,直到冰淇淋三明治,这将是很长很长的时间,直到它是可行的冰淇淋三明治作为运行应用程序的最低要求。

有没有办法在Froyo中获得相同的function?

Solutions Collecting From Web of "smoothScrollToPositionFromTop为Froyo ListView?"

使用

setSelection (int position) 

下面的代码并不完美,但是它在很多情况下都是这样做的:


 if (android.os.Build.VERSION.SDK_INT >= 11) { listView.smoothScrollToPositionFromTop(p, 0); } else if (android.os.Build.VERSION.SDK_INT >= 8) { int firstVisible = listView.getFirstVisiblePosition(); int lastVisible = listView.getLastVisiblePosition(); if (p < firstVisible) listView.smoothScrollToPosition(p); else listView.smoothScrollToPosition(p + lastVisible - firstVisible - 2); } else { listView.setSelectionFromTop(p, 0); }