上篇博文和大家分享了下拉刷新,这是一个用户体验非常好的操作方式。新浪微薄就是使用这种方式的典型。
还有个问题,当用户从网络上读取微薄的时候,如果一下子全部加载用户未读的微薄这将耗费比较长的时间,造成不好的用户体验,同时一屏的内容也不足以显示如此多的内容。这时候,我们就需要用到另一个功能,那就是listview的分页了。通过分页分次加载数据,用户看多少就去加载多少。
通常这也分为两种方式,一种是设置一个按钮,用户点击即加载。另一种是当用户滑动到底部时自动加载。今天我就和大家分享一下这个功能的实现。
首先,写一个xml文件,moredata.xml,该文件即定义了放在listview底部的视图:
可以看到是一个按钮和一个进度条。因为只做一个演示,这里简单处理,通过设置控件的visibility,未加载时显示按钮,加载时就显示进度条。
写一个item.xml,大家应该很熟悉了。用来定义listview的每个item的视图。
main.xml就不贴了,整个主界面就一个listview。
直接先看下Activity的代码,在里面实现分页效果。
通过注释,大家应该很容易理解了。这里做下简单的解析。首先要注意的是,addFootView方法一定要在setAdapter方法之前,否则会无效。addFootView方法为listview底部加入一个视图,在本例中就是那个Button加progressbar的视图。当用户点击按钮时,调用loadmoreDate方法,为listview绑定更多的数据,通过adapter的notifyDataSetChanged方法通知listview刷新,显示刚加入的数据。
这里用handler异步延迟2秒操作,模仿加载过程。同时listview绑定了onScrollListener监听器,并且实现了onScroll和onScrollStateChanged方法。在后者方法中,我们通过判断listview已经停止滚动并且最后可视的条目等于adapter的条目,可以知道用户已经滑动到底部并且自动加载,代码中将这部分代码注释掉了,大家可以自己试下。
代码中还加入了一个MaxDateNum变量,用来记录最大的数据数量。也就是说网络或者其他地方一共的数据。通过onScroll方法判断用户加载完这些数据后,移除listview底部视图,不让继续加载。同时在loadmoreDate方法中也对最大数据量做相应的操作来判断加载数量。(默认加载5条,不足5条时加载剩余的)。
看下效果图:
就写这么多了,总的来说还是很简单的,但是确实非常有用的一个效果。欢迎留言交流。
分享到:
相关推荐
androidUI进阶之实现listview的下拉加载.pdf
android UI进阶之实现listview中checkbox的多选与记录
android_UI进阶之实现listview的下拉加载,实用简单
Android高级应用源码-Listview分页加载数据.zip
关于listview的操作五花八门,有下拉刷新,分级显示,分页列表,逐页加载等,以后会陆续和大家分享这些技术,今天讲下下拉加载这个功能的实现。最初的下拉加载应该是ios上的效果,现在很多应用如新浪微博等都加入了...
android下listview分页加载更多,绝对可用
android listView 分页加载
ListView动态加载数据分页,使用Handler+线程和AsyncTask两种方法
android中listview数据分页加载功能实现
Listview实现分页加载
listView 分页加载 android 动态加载数据
Android ListView分页加载功能 在实际开发中经常用到,是每个开发者必须掌握的内容,本Demo给出了服务端+Android端的两者的代码,并成功通过了测试。 服务端使用MyEclipse,Android端使用Eclipse。
Android应用源码之Listview分页加载数据_Android
Android应用源码之Listview分页加载数据.zip
Android应用源码之Listview分页加载数据.zip项目安卓应用源码下载Android应用源码之Listview分页加载数据.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
这是一个关于android listview应用的一个源码程序,详细的解释了listview的应用和使用方法。