[Android算法] 精确记录和恢复ListView滑动位置
backgroundList.setOnScrollListener(scrollListener); |
private OnScrollListener scrollListener = new OnScrollListener() { @Override public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) { } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) { // ListPos记录当前可见的List顶端的一行的位置 scrollPos = myList.getFirstVisiblePosition(); } if (arrayList != null) { View v=myList .getChildAt(0); scrollTop=(v==null)?0:v.getTop(); } } }; |
调用setAdapter之后恢复位置:
myList .setSelectionFromTop(scrollPos, scrollTop); |
参考:http://stackoverflow.com/questions/3014089/scroll-to-a-position-in-a-listview
路漫漫其修远兮 吾将上下而求索

浙公网安备 33010602011771号