在项目中经常使用到listView控件,当想记录滚动停止时的记录,当点击加载新的数据,从记录的位置开始显示的操作怎么实现尼?分为如下步骤
1.记录位置代码
//声明记录停止滚动时候,可见的位置 private int stop_position;
@Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub // 判断是否是最后一行,并且停止滚动 if (isLastRow && scrollState == OnScrollListener.SCROLL_STATE_IDLE) { //获取可见位置 stop_position = lv_categories.getFirstVisiblePosition(); // 判断是否是最后一页 if (pageInfo.getNowPage() != pageInfo.getCountPage()) { // 查询下一页数据 categoryManager.queryObjects(pageInfo.getNowPage() + 1); } // 记得把标识改为false isLastRow = false; } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if ((firstVisibleItem + visibleItemCount) >= totalItemCount) { isLastRow = true; } }
2.重新开始位置
// 设置listView控件的适配器 lv_categories.setAdapter(adapter); //设置listView开始的可见位置 lv_categories.setSelection(stop_position);