listview--记录ListView滚动停止位置与设置显示位置
在项目中经常使用到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);