首页 > 其他 > 详细

listview定位到上次显示的位置

时间:2015-04-22 13:22:39      阅读:241      评论:0      收藏:0      [点我收藏+]

整体思路:滑动lictview时,记录listview的位置,定位时定位到该位置。

1、添加全局变量

private int scrolledX = 0;
private int scrolledY = 0;

2、Oncreate()添加滚动事件监听

ClassesLV.setOnScrollListener(new OnScrollListener() {

/**
* 滚动状态改变时调用
*/

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

}

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

  scrolledX = view.getFirstVisiblePosition();
  Log.i("scroll X", String.valueOf(scrolledX));
  scrolledY = view.getChildAt(0).getTop();
  Log.i("scroll Y", String.valueOf(scrolledY));
} catch (Exception e) {
}
}
}

//

});

3、activity  重新启动时,恢复原先的定位。

public void onBack() {
  ClassesLV.setSelectionFromTop(scrolledX, scrolledY);
}

protected void onResume() {
  // ClassesLV.scrollTo(scrolledX, scrolledY);
  onBack();
  // initDataFromNet();
  isClick = 0;
  super.onResume();
}

 

listview定位到上次显示的位置

原文:http://www.cnblogs.com/qianyukun/p/4446913.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!