listview滚动状态保存和恢复

获取listview滚动状态

// save index and top position
int index = listView.getFirstVisiblePosition();
View v = listView.getChildAt(0);
int top = (v == null) ? 0 : (v.getTop() - listView.getPaddingTop());
outState.putInt("listView" + mIndex + "scrollY", top);
outState.putInt("listView" + mIndex + "lastPosition", index);

还原滚动状态

// restore index and position
listView.setSelectionFromTop(
    savedInstanceState.getInt("listView" + mIndex + "lastPosition"),
        savedInstanceState.getInt("listView" + mIndex + "scrollY"));
发布了348 篇原创文章 · 获赞 8 · 访问量 74万+

猜你喜欢

转载自blog.csdn.net/logan676/article/details/104363085