blob: d60e9da6c6b2c0bb112cf32e53c73770bffa85dc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package org.wordpress.android.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);
}
}
}
|