package kr.kdev.dg1s.biowiki.util; import android.view.View; import android.widget.ListView; public class ListScrollPositionManager { private int mSelectedPosition; private int mListViewScrollStateIndex; private int mListViewScrollStateOffset; private ListView mListView; private boolean mSetSelection; public ListScrollPositionManager(ListView listView, boolean setSelection) { mListView = listView; mSetSelection = setSelection; } public void saveScrollOffset() { mListViewScrollStateIndex = mListView.getFirstVisiblePosition(); View view = mListView.getChildAt(0); mListViewScrollStateOffset = 0; if (view != null) { mListViewScrollStateOffset = view.getTop(); } if (mSetSelection) { mSelectedPosition = mListView.getCheckedItemPosition(); } } public void restoreScrollOffset() { mListView.setSelectionFromTop(mListViewScrollStateIndex, mListViewScrollStateOffset); if (mSetSelection) { mListView.setItemChecked(mSelectedPosition, true); } } }