ListView Scroll: 动态加载列表内容

目标:当一个ListView在上下滑动时(scroll up / scroll down),当List中的内容比较多时,会分批load进其中的内容。这在各类型App中很常见。我们现在就是做一个动态加载列表内容功能。

特点: 与平时的到了页底再load data不同,假如每次翻页为20条数据,我做的是当ListView滚动停下来时,离页底还有15条数据时就准备load data。也就是说在正常翻页速度下,用户是看不到load data的状态的(为了调试,要设置长一点sleep time以便观察)。


以下是部分关键代码,e.g.

		listView.setOnScrollListener(new OnScrollListener() {
			@Override
			public void onScrollStateChanged(AbsListView view, int scrollState) {
				switch (scrollState) {
				case OnScrollListener.SCROLL_STATE_IDLE:
					int firstVisiblePosition = view.getFirstVisiblePosition();
		            if (sideData.size() < getDataCount()) { // current accumulated items count < total items count
		            	canLoad = true;
		            } else {
		            	canLoad = false;
		            }
		            
		            if (firstVisiblePosition >= currentPage.get() * pageSize - 15) {	// 离页底还有15条数据时就准备load data
			            int maxPage = getDataCount() / pageSize;
			            if (currentPage.get() + 1 <= maxPage && canLoad) {
	                        /* 每次翻页前添加页脚 */
	                        listView.addFooterView(footer);
	                        listView.setAdapter(adapter);
	                        /* 创建子线程,执行翻页 */
	                        new Thread(new Runnable() {
	                            public void run() {
	                                try {
	                                    Thread.sleep(3000);
	                       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值