ListView滑动到底部自动加载

来源:互联网 发布:js数组遍历方法 编辑:程序博客网 时间:2024/04/29 20:45

许多项目已经用到了滑动到底自动开始加载数据的效果,替代用力上拉加载更多的效果,例如网易新闻,新浪微博。介绍一下我的思路
1.如果你当前屏幕第一个Item的位置(firstVisibleItem )+你当前屏幕可见item的数量==ListView中item的数量(这里可以理解—-ListView中总的item的数量就是ListView中最后一个item的位置),也就是当前已经滑动到最后一个item时,开始加载新数据
2.ListView中position的位置计算是从header开始的,如果给listview加入了header和footer,还要判断当前的item是否只是你加入footer视图的位置(totalItemCount != mListView.getHeaderViewsCount()
+ mListView.getFooterViewsCount())
3.以及添加给适配器的数据不是空数据

mListView.setOnScrollListener(new AbsListView.OnScrollListener() {            @Override            public void onScrollStateChanged(AbsListView view, int scrollState) {            } @Overridepublic void onScroll(AbsListView view, int       firstVisibleItem, int visibleItemCount, int totalItemCount) {   if (mLoadingFooter.getState() == LoadingFooter.State.Loading||mLoadingFooter.getState() == LoadingFooter.State.TheEnd) { return;   }  if (firstVisibleItem + visibleItemCount >= totalItemCount  && totalItemCount != 0&& totalItemCount!=mListView.getHeaderViewsCount() + mListView.getFooterViewsCount() && mAdapter.getCount() > 0 && hasmore) {      loadNextPage();                }            }        });
0 0
原创粉丝点击