【Android基础笔记08】ListView分页

一、ListView分页:
(一)、目的:
         Android 应用开发中,采用ListView组件来展示数据是很常用的功能,当一个应用要展现很多的数据时,一般情况下都不会把所有的数据一次就展示出来,而是通过 分页的形式来展示数据,这样会有更好的用户体验。因此,很多应用都是采用分批次加载的形式来获取用户所需的数据。例如:微博客户端可能会在用户滑 动至列表底端时自动加载下一页数据,也可能在底部放置一个"查看更多"按钮,用户点击后,加载下一页数据。
(二)、核心技术点:
  1.   借助 ListView组件的OnScrollListener监听事件,去判断何时该加载新数据;
  2.   往服务器get传递表示页码的参数:page。而该page会每加载一屏数据后自动加一;
  3.   利用addAll()方法不断往list集合末端添加新数据,使得适配器的数据源每新加载一屏数据就发生变化;
  4.   利用适配器对象的notifyDataSetChanged()方法。该方法的作用是通知适配器自己及与该数据有关的view,数据已经发生变动,要刷新自己、更新数据。

(三)、 OnScrollListener监听事件 :
1、该监听器中有两个需要实现的方法:
  •   onScrollStateChanged(AbsListView view, int scrollState):监听屏幕的滚动状态的变动情况945606

  •   onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount):监听屏幕滚动的item的数量
2、 scrollState 回调顺序如下: 
  •   第1次:scrollState = SCROLL_STATE_TOUCH_SCROLL(1):表示正在滚动。当屏幕滚动且用户使用的触碰或手指还在屏幕上时为1
  •   第2次:scrollState =SCROLL_STATE_FLING(2) :表示手指做了抛的动作(手指离开屏幕前,用力滑了一下,屏幕产生惯性滑动)。 
  •   第3次:scrollState =SCROLL_STATE_IDLE(0) :表示屏幕已停止。屏幕停止滚动时为0。
3、 onScroll中参数讲解:
  • firstVisibleItem:当前窗口中能看见的第一个列表项ID(从0开始)    
  • visibleItemCount:当前窗口中能看见的列表项的个数(小半个也算)    
  • totalItemCount:列表项的总数

4、思路:
  • 当滚到最后一条,加载新数据
  • 适配器的数据源要进行累加:totalList.addAll(list);
  • 数据发生变化,适配器通知:adapter.notifyDataSetChanged();【牢记】
  • 判断是否滚到最后一行。  
示例代码:
 
           
if (firstVisibleItem visibleItemCount == totalItemCount ) {    
isBottom = true; 
}
 
(四)、页面效果:

【要求:】
当屏幕滑动到最后一条时,显示“点击加载数据”的提示。点击后可以加载新的数据。当向上滑动或者没有到最后一条时,不显示“点击加载数据”的提示。

(五)、核心代码:

1、布局文件的核心代码:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值