listview--记录ListView滚动停止位置与设置显示位置

在项目中经常使用到listView控件,当想记录滚动停止时的记录,当点击加载新的数据,从记录的位置开始显示的操作怎么实现尼?分为如下步骤

1.记录位置代码

 

[java] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. //声明记录停止滚动时候,可见的位置  
  2. private int stop_position;  
[java] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. @Override  
  2.     public void onScrollStateChanged(AbsListView view, int scrollState) {  
  3.         // TODO Auto-generated method stub  
  4.         // 判断是否是最后一行,并且停止滚动  
  5.         if (isLastRow && scrollState == OnScrollListener.SCROLL_STATE_IDLE) {  
  6.             //获取可见位置  
  7.             stop_position = lv_categories.getFirstVisiblePosition();  
  8.             // 判断是否是最后一页  
  9.             if (pageInfo.getNowPage() != pageInfo.getCountPage()) {  
  10.                 // 查询下一页数据  
  11.                 categoryManager.queryObjects(pageInfo.getNowPage() + 1);  
  12.             }  
  13.             // 记得把标识改为false  
  14.             isLastRow = false;  
  15.         }  
  16.   
  17.     }  
  18.   
  19.     @Override  
  20.     public void onScroll(AbsListView view, int firstVisibleItem,  
  21.             int visibleItemCount, int totalItemCount) {  
  22.   
  23.         if ((firstVisibleItem + visibleItemCount) >= totalItemCount) {  
  24.             isLastRow = true;  
  25.         }  
  26.   
  27.     }  



 

2.重新开始位置

 

[java] view plaincopy在CODE上查看代码片派生到我的代码片
 
    1. // 设置listView控件的适配器  
    2. lv_categories.setAdapter(adapter);  
    3. //设置listView开始的可见位置  
    4. lv_categories.setSelection(stop_position);  
posted on 2015-12-09 17:37  左手指月  阅读(441)  评论(0编辑  收藏  举报