关于listview的操作五花八门,有下拉刷新,分级显示,分页列表,逐页加载等,以后会陆续和大家分享这些技术,今天讲下下拉加载这个功能的实现。
最初的下拉加载应该是ios上的效果,现在很多应用如新浪微博等都加入了这个操作。即下拉listview刷新列表,这无疑是一个非常友好的操作。今天就和大家分享下这个操作的实现。
先看下运行效果:
代码参考国外朋友Johan Nilsson的实现,http://johannilsson.com/2011/03/13/android-pull-to-refresh-update.html。
主要原理为监听触摸和滑动操作,在listview头部加载一个视图。那要做的其实很简单:1.写好加载到listview头部的view 2.重写listview,实现onTouchEvent方法和onScroll方法,监听滑动状态。计算headview全部显示出来即可实行加载动作,加载完成即刷新列表。重新隐藏headview。
首先写下headview的xml代码:
代码比较简单,即headview包括一个进度条一个箭头和两段文字(一个显示加载状态,另一个显示最后刷新时间,本例就不设置了)。
而后重写listview,代码如下:
相信我注释已经写的比较详细了,主要注意onTouchEvent和onScroll方法,在这里面计算头部边距,从而通过用户的手势实现“下拉刷新”到“松开加载”以及“加载”三个状态的切换。其中还有一系列和header有关的方法,用来设置header的显示以及取得header的边距。于此同时,代码留出了接口以供调用。
那么现在写一个测试Activity来试验下效果:
代码通过asyncTask实现一个异步操作,并通过设置onRefreshListener监听器调用onRefresh方法实现下拉时刷新,并在刷新完成后调用onRefreshComplete做复位处理。
今天就和大家分享这些,有问题欢迎留言交流。
分享到:
相关推荐
androidUI进阶之实现listview的下拉加载.pdf
android_UI进阶之实现listview的下拉加载,实用简单
android UI进阶之实现listview中checkbox的多选与记录
该文档详细介绍了listView的分页加载
关于listview的操作五花八门,有下拉刷新,分级显示,分页列表,逐页加载等,以后会陆续和大家分享这些技术,今天讲下下拉加载这个功能的实现。最初的下拉加载应该是ios上的效果,现在很多应用如新浪微博等都加入了...
Android luncher拖动效果+listview下拉加载
ListView下拉刷新 ListView下拉刷新ListView下拉刷新ListView下拉刷新
简单的实现listview下拉加载更多,不需要自定义listview同样可以实现listview加载更多的功能
android 实现listview动态下拉刷新,动态加载数据 可以避免一次数据加载过多
NULL 博文链接:https://geningaixin.iteye.com/blog/2034379
自定义ListView实现下拉刷新+加载更多功能Demo
android listview demo 下拉加载更多 已调试通过。
Android高手进阶教程之----Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用!.doc Android高手进阶教程之----通过Location获取Address的使用.doc Android基础教程之----Android ProgressBar的使用.doc...
里面有三个例子 是分开的 listView 的下拉刷新上拉加载,现在大多数的应用都用的这一款
Android listview 下拉 刷新
Fragment+ListView下拉加载上拉刷新
Android Listview 单独的下拉刷新和 下拉刷新以及加载更多结合.
android Listview下拉刷新 上拉(滑动分页)加载更多 高仿新浪微博下拉刷新,同时实现了滑动加载下一页
Android Listview下拉刷新上拉加载源码