Android listview定位到上次顯示的位置的實現方法
整體思路:滑動lictview時,記錄listview的位置,定位時定位到該位置。
1、添加全局變量
private int scrolledX = 0;private int scrolledY = 0;
2、Oncreate()添加滾動事件監聽
ClassesLV.setOnScrollListener(new OnScrollListener() {/*** 滾動狀態改變時調用*/@Overridepublic void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {}@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {try { scrolledX = view.getFirstVisiblePosition(); Log.i("scroll X", String.valueOf(scrolledX)); scrolledY = view.getChildAt(0).getTop(); Log.i("scroll Y", String.valueOf(scrolledY));} catch (Exception e) {}}}//});3、activity 重新啟動時,恢復原先的定位。
public void onBack() { ClassesLV.setSelectionFromTop(scrolledX, scrolledY);}protected void onResume() { // ClassesLV.scrollTo(scrolledX, scrolledY); onBack(); // initDataFromNet(); isClick = 0; super.onResume();}如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答