+ /*
+ * Restore index and position
+ */
+ private void restoreIndexAndPosition() {
+ int index = mIndexes.get(mIndexes.size() - 1);
+ mIndexes.remove(mIndexes.size() - 1);
+ int top = mTops.get(mTops.size() - 1);
+ mTops.remove(mTops.size() - 1);
+ mList.setSelectionFromTop(index, top);
+ }
+
+ /*
+ * Save index and top position
+ */
+ private void saveIndexAndPosition(int index) {
+
+ mIndexes.add(index);
+ View view = mList.getChildAt(0);
+ mTops.add( (view == null) ? 0 : view.getTop() );
+ }
+