ListView分页显示

ListView分页显示,第1张

ListView分页显示 出在:http://blog.csdn.net/tu_bingbing/article/details/13275107         当ListView要显示的数据过多时,为了更快的响应用户,这个时候ListView进行分页显示再合适只是了。


     ListView分页显示数据的原理事实上非常easy,当用户滑到ListView最后一项时,通知异步线程进行载入下一页的数据,下一页数据载入完毕时,调用设置好的Adapter的notifyDataSetChange()方法,ListView显示下一页的数据。


     如今有两个问题要解决,第一个问题要知道用户是否滑到了ListView的最后一项;第二个问题是怎样提示用户正在载入下一页的数据,让用户耐心等待。


     解决第一个问题,我们仅仅需自己定义ListView,让它实现OnScrollListener类监听ListView的滑动状态,以此来推断是否滑动到了最后一项

[java] view
plaincopy

  1. @Override
  2. public void onScroll(AbsListView view, int firstVisibleItem,
  3. int visibleItemCount, int totalItemCount ) {
  4. if (getAdapter() == null){
  5. return ;
  6. }
  7. if (getAdapter().getCount() == 0){
  8. return ;
  9. }
  10. int lastItemIndex = firstVisibleItem + visibleItemCount;
  11. if (lastItemIndex >= totalItemCount){
  12. // 用户已经滑动到了ListView的最后一项
  13. }

     要解决第二个问题也是在onScroll()方法中来实现 [java] view
plaincopy

  1. @Override
  2. public void onScroll(AbsListView view, int firstVisibleItem,
  3. int visibleItemCount, int totalItemCount) {
  4. if (getAdapter() == null){
  5. return ;
  6. }
  7. if (getAdapter().getCount() == 0){
  8. return ;
  9. }
  10. int lastItemIndex = firstVisibleItem + visibleItemCount;
  11. if (lastItemIndex >= totalItemCount && ! isLoading){
  12. addFooterView( footerView );//用来提示用户正在载入下一页的数据
  13. isLoading = true ;
  14. listener.loadData();
  15. }

当监听到用户滑动到最后一项时,加入footerView,并通知进行数据载入。


     以下是一个简单的样例源代码






很多其它0


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/588809.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存