关于上拉下拉加载,网络上使用很多的是国外大神发布的Android-PullToRefresh,确实方便很多,现在来谈谈使用心得:
1:源码下载:https://github.com/chrisbanes/Android-PullToRefresh
2:环境配置:
将压缩文件解压后, 把\Android-PullToRefresh-master 下的library拷贝到和主工程同一目录。
在主工程中的project.properties中追加:android.library.reference.1=../library/
3:代码修改:
①,将xml中<listview修改为:<com.handmark.pulltorefresh.library.PullToRefreshListView
②,将java中原listview的OnScrollListener删除
③,修改源码:在PullToRefreshBase最后追加:
public boolean isHeaderShown() {
return getHeaderLayout().isShown();
}
public boolean isFooterShown() {
return getFooterLayout().isShown();
}
③,在java中添加OnRefreshListener,并实现其onRefresh方法,用isFooterShown方法判断是否到了上拉加载更多的情况,并实现加载下一页的业务代码。
@Override
public void onRefresh(PullToRefreshBase refreshView) {
if (refreshView.isFooterShown()) {
if (!mIsRefreshing) {
mIsRefreshing = true;
// 上拉加载更多
mPageIndex++;
startGetData();
} else {
mListView.onRefreshComplete();
}
}
④,加载完后调用onRefreshComplete方法关闭加载中的显示。
⑤,使用setMode方法设置是否支持headview,footview或者两者都支持
值得注意的地方:有的时候可能会发生mListView.onRefreshComplete()无效的情况,这是因为上拉加载和关闭刷新时间太短,延迟一秒即可:
mListView.postDelayed(new Runnable() {
@Override
public void run() {
mListView.onRefreshComplete();
}
}, 1000);