Android中保存并设置ListView位置


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) {
 }
});

相关内容