在很多App应用里面我们可以看到好多ListView都用到了下拉上拉刷新功能,可能大家都会想到第三方框架PullToRefresh,今天我就在这里给大家说说刷新的原理,使用原生态的ListView实现刷新功能
为了我们更好的使用,这里可以自定义一个ListView(MyListView),实现他的监听方法 代码如下:
public class MyListView extends ListView implements OnScrollListener {
实现三个构造方法,在MyListViw的最下或最上添加一个ProgressBar,用来提示正在加载界面
View v = from.inflate(R.layout.listview_progressbar, null, false);// 得到一个View
ll = (LinearLayout) v.findViewById(R.id.ll_id);
this.addFooterView(v);// 把这View添加到自定义的ListView里
ll.setVisibility(View.GONE);// 隐藏这个View
实现MyListView的监听事件this.setOnScrollListener(this);
最后用接口回掉的逻辑来实现对监听结果的处理
下面我在介绍下监听事件的主要逻辑
public void onScrollStateChanged(AbsListView view, int scrollState) {// scrollState是当前的状态
我们在这监听状态的方法里写我们逻辑接口
首先要判断当前状态,
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {// 当ListView是空闲状态时
if (mTotalItemCount == mZongji) {//当屏幕第一个条目和最大显示条目之和等于所有条目时,就是到底部了
如果以上判断都通过,那么就运行接口回掉的方法
* firstVisibleItem是显示在屏幕上第一个条目的索引 visibleItemCount屏幕上可见的条目数(最大能显示多少条目)
* totalItemCount 总共的条目数
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
以上所写只是逻辑,具体代码有需要的亲联系我;