场景:在listview界面滑动到某个位置是,点击跳转界面---------返回需要刷新listview数据,简单的Adapter.notifyDataSetChanged();无法满足刷新要求
需要重写获取数据来刷新。
代码如下:
private int scrollPos, scrollTop;// list滑动位置
route_list.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 不滚动时保存当前滚动到的位置
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
// ListPos记录当前可见的List顶端的一行的位置
scrollPos = route_list.getFirstVisiblePosition();
}
View v = route_list.getChildAt(0);
scrollTop = (v == null) ? 0 : v.getTop();
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// 滚动时调用
}
});
在刷新完成的地方执行下面代码,listview滑动到上次显示的位置
route_list.setSelectionFromTop(scrollPos,scrollTop);