codecamp

ListView 如何实现分页加载

设置 ListView 的滚动监听器 setOnScrollListener(new OnScrollListener{….})

在监听器中有两个方法: 滚动状态发生变化的方法onScrollStateChanged和 listView 被滚动时调用的方法onScroll

在滚动状态发生改变的方法中,有三种状态:

  • 手指按下移动的状态: SCROLL_STATE_TOUCH_SCROLL: \/\/ 触摸滑动
  • 惯性滚动: SCROLL_STATE_FLING: \/\/ 滑翔
  • 静止状态: SCROLL_STATE_IDLE: \/\/ 静止

对不同的状态进行处理:

分批加载数据,只关心静止状态: 关心最后一个可见的条目, 如果最后一个可见条目就是数据适配器(集合)里的最后一个, 此时可加载更多的数据. 在每次加载的时候, 计算出滚动的数量, 当滚动的数量大于等于总数量的时候, 可以提示用户无更多数据.


ListView 数据集改变后, 如何更新 ListView?
Adapter的种类
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }