How can I save the ListView
's scroll position when the ListView
is situated within a ListFragment
?
Finally I solved the problem, so I decided to post the solution for others:
Within my ListFragment sub class I declared two int variables to hold the scroll position
public static class MyListFragment extends ListFragment {
......................
......................
private int index = -1;
private int top = 0;
......................
Then override the onPause() and onResume() to save and restore the ListView
's scroll positions as follows:
@Override
public void onResume() {
super.onResume();
......................
......................
setListAdapter(mAdapter);
if(index!=-1){
this.getListView().setSelectionFromTop(index, top);
}
......................
......................
}
@Override
public void onPause() {
super.onPause();
try{
index = this.getListView().getFirstVisiblePosition();
View v = this.getListView().getChildAt(0);
top = (v == null) ? 0 : v.getTop();
}
catch(Throwable t){
t.printStackTrace();
}
......................
......................
}
That's it!! I hope this will help some one. :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With