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

时间:2023-03-09 01:01:00
listview--记录ListView滚动停止位置与设置显示位置

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

1.记录位置代码

  1. //声明记录停止滚动时候,可见的位置
  2. private int stop_position;
  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. @Override
  18. public void onScroll(AbsListView view, int firstVisibleItem,
  19. int visibleItemCount, int totalItemCount) {
  20. if ((firstVisibleItem + visibleItemCount) >= totalItemCount) {
  21. isLastRow = true;
  22. }
  23. }

2.重新开始位置

    1. // 设置listView控件的适配器
    2. lv_categories.setAdapter(adapter);
    3. //设置listView开始的可见位置
    4. lv_categories.setSelection(stop_position);