Android(安卓)listView scroll 恢复滚动位置
16lz
2021-01-25
相信大家尝试过许多方法恢复滚动位置,本人也找了许多方法,唯有这个方法好用,下面把代码贴出来
声明两个变量
private int mPosition;private int lvChildTop;
pause , resume方法
@Overridepublic void onPause() {// TODO Auto-generated method stubsuper.onPause();SharedPreferences mySharedPreferences = activity.getSharedPreferences(MY_PREFS, Activity.MODE_PRIVATE);SharedPreferences.Editor edit = mySharedPreferences.edit();edit.putInt("mPositionChildTop", lvChildTop);edit.putInt("mPosition", mPosition);edit.commit();}@Overridepublic void onResume() {// TODO Auto-generated method stubsuper.onResume();SharedPreferences mySharedPreferences = activity.getSharedPreferences(MY_PREFS, Activity.MODE_PRIVATE); // MY_PREFES 是声明的字符串lvChildTop = mySharedPreferences.getInt("mPositionChildTop", 0);mPosition = mySharedPreferences.getInt("mPosition", 0);listMessage.setSelectionFromTop(mPosition, lvChildTop); // listMessage 是listview ,}
private OnScrollListener lvScrollListener = new OnScrollListener() {@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {// TODO Auto-generated method stub// 不滚动时保存当前滚动到的位置if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {mPosition = listMessage.getFirstVisiblePosition();View v = listMessage.getChildAt(0);lvChildTop = (v == null) ? 0 : v.getTop();}}@Overridepublic void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {// TODO Auto-generated method stub}};
更多相关文章
- Android(安卓)json通信(解析)方法
- Android(安卓)rom开发:webview崩溃问题Binary XML file line #103
- Android(安卓)OpenGLES绘制yuv420纹理
- android proguard混淆apk问题
- Android(安卓)网络框架初探
- 学习Android闹钟源代码(三)-AlarmClock类分析(part2)
- Android(安卓)动画AlphaAnimation类方法
- android tabHost使用
- Android(安卓)2.3新增API - DownloadManager