正常情况下,如果ListView对象不被回收,那么会自动记录当前状态。
但如果在项目中遇到ListView滚动锚点的问题,可使用如下方法
/***** 这段代码主要为了实现listView 在 首页切换到行情时,记录当前锚点 *****/
//滚动时记录index和top差值
int index = listView.getFirstVisiblePosition();
View v = listView.getChildAt(0);
int top = (v == null) ? 0 : v.getTop();
//恢复时重设
listView.setScrollOption(index, top);
/*********** 结束 ***********/
listView.setScrollOption(index, top);
/**
* 记录滚动位置
*/
public void setScrollOption(int position, int y) {
setSelectionFromTop(position, y);
}
继承ListView,添加此方法。
如果你直接在外部调用 listView.setSelectionFromTop(position,y); 会提示API限制的问题,5.0以上才可以。所以直接继承ListView的方式最好!