Android listview定位到上次显示的位置的实现方法
Androidlistview定位到上次显示的位置的实现方法
整体思路:滑动lictview时,记录listview的位置,定位时定位到该位置。
1、添加全局变量
privateintscrolledX=0; privateintscrolledY=0;
2、Oncreate()添加滚动事件监听
ClassesLV.setOnScrollListener(newOnScrollListener(){ /** *滚动状态改变时调用 */ @Override publicvoidonScroll(AbsListViewview,intfirstVisibleItem, intvisibleItemCount,inttotalItemCount){ } @Override publicvoidonScrollStateChanged(AbsListViewview,intscrollState){ if(scrollState==OnScrollListener.SCROLL_STATE_IDLE){ try{ scrolledX=view.getFirstVisiblePosition(); Log.i("scrollX",String.valueOf(scrolledX)); scrolledY=view.getChildAt(0).getTop(); Log.i("scrollY",String.valueOf(scrolledY)); }catch(Exceptione){ } } } // });
3、activity 重新启动时,恢复原先的定位。
publicvoidonBack(){ ClassesLV.setSelectionFromTop(scrolledX,scrolledY); } protectedvoidonResume(){ //ClassesLV.scrollTo(scrolledX,scrolledY); onBack(); //initDataFromNet(); isClick=0; super.onResume(); }
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!