ListView是Android开发中最常用的控件之一,在开发会遇到记录ListView的位置这样的需求。
下面是保存并设置ListView位置的一种方法:
// 设置ListView到记录的位置
mListView.setSelection(mPosition);
mListView.setOnScrollListener(new OnScrollListener() {
/**
* 滚动状态改变时调用
*/
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 不滚动时保存当前滚动到的位置
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
mPosition = mListView.getFirstVisiblePosition();
}
}
/**
* 滚动时调用
*/
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
});