您的位置:首页 > 其它

记录和恢复listView的滚动位置

2015-12-21 09:12 323 查看
1.

mListView.setOnScrollListener(new MyOnScrollListener());


2.

class MyOnScrollListener implements OnScrollListener {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {

int firstVisiblePosition = mListView.getFirstVisiblePosition();
View firstView = mListView.getChildAt(0);
int firstViewTop = (firstView == null) ? 0 : firstView.getTop();

CacheUtils.putString(mActivity, "firstVisiblePosition_firstViewTop",
firstVisiblePosition + "," + firstViewTop);
}
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
}


3.

/** 恢复listView的滚动位置 */
String args = CacheUtils.getString(mActivity, "firstVisiblePosition_firstViewTop", ",");
if (!args.equals(",")) {
String[] split = args.split(",");
int arg0 = Integer.parseInt(split[0]);
int arg1 = Integer.parseInt(split[1]);
mListView.setSelectionFromTop(arg0, arg1);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: