1、ListView.getScrollY() 这个一般一直是0,所以不能用这个方法。
2、ListView.getLocationOnScreen()或者ListView.getLocationInWindow() 这两个方法是可以的。
/**
* 滚动状态改变时调用
*/
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 不滚动时保存当前滚动到的位置
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
int pos[] = { -1, -1 }; //保存当前坐标的数组x,y
position = view.getLocationOnScreen(pos);
}
}
ListView.scrollTo(x,y); // 恢复刚才的位置
3、ListView.getFirstVisiblePosition()这个是得到可见Item位置的。
/**
* 滚动状态改变时调用
*/
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 不滚动时保存当前滚动到的位置
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
position = view.getFirstVisiblePosition();
}
}
ListView.setSelection(position); // 恢复刚才的位置