http://www.voidcn.com/article/p-praqpgno-bhz.html
二.记录第一个可见的item的top值,使用setSelectionFromTop()精确恢复其位置
int scrollTop;
int itemPosition
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if(scrollState==OnScrollListener.SCROLL_STATE_IDLE){
itemPosition = listView.getFirstVisiblePosition();
View v=listView .getChildAt(0);
scrollTop=(v==null)?0:v.getTop();
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {
}
});
listView.setSelectionFromTop(itemPosition , scrollTop);