Android应用中使用ListView来分页显示刷新的内容

2019-12-10 18:12:04王冬梅

ListView分页显示数据的原理其实很简单,当用户滑到ListView最后一项时,通知异步线程进行加载下一页的数据,下一页数据加载完成时,调用设置好的Adapter的notifyDataSetChange()方法,ListView显示下一页的数据。
现在有两个问题要解决,第一个问题要知道用户是否滑到了ListView的最后一项;第二个问题是如何提示用户正在加载下一页的数据,让用户耐心等待。
解决第一个问题,我们只需自定义ListView,让它实现OnScrollListener类监听ListView的滑动状态,以此来判断是否滑动到了最后一项
这里只简单说一下要点:

@Override 
public void onScroll(AbsListView view, int firstVisibleItem, 
    int visibleItemCount, int totalItemCount ) { 
 
  if (getAdapter() == null){ 
    return ; 
  } 
  
  if (getAdapter().getCount() == 0){ 
    return ; 
  } 
  
  int lastItemIndex = firstVisibleItem + visibleItemCount; 
  if (lastItemIndex >= totalItemCount){ 
    // 用户已经滑动到了ListView的最后一项 
  } 

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

@Override 
public void onScroll(AbsListView view, int firstVisibleItem, 
    int visibleItemCount, int totalItemCount) { 
 
  if (getAdapter() == null){ 
    return ; 
  } 
  
  if (getAdapter().getCount() == 0){ 
    return ; 
  } 
  
  int lastItemIndex = firstVisibleItem + visibleItemCount; 
  if (lastItemIndex >= totalItemCount && ! isLoading){ 
   addFooterView( footerView );//用来提示用户正在加载下一页的数据 
    isLoading = true ; 
    listener.loadData(); 
  } 


注:相关教程知识阅读请移步到Android开发频道。