1.导入库
下载 Android-PullToRefresh-master.zip 包
解压后将里面的library 作为android 项目导入
然后把library 作为工程的依赖
2.布局文件
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/check_project_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#000000"
android:fadingEdge="none"
android:fastScrollEnabled="false"
android:footerDividersEnabled="false"
android:headerDividersEnabled="false"
android:smoothScrollbar="true"
ptr:ptrAnimationStyle="flip"
ptr:ptrHeaderTextAppearance ="@android:attr/textAppearanceMedium">
</com.handmark.pulltorefresh.library.PullToRefreshListView>
3.初始化设置信息
projectListView = (PullToRefreshListView)findViewById(R.id. check_project_list);
projectListView.setMode(Mode.BOTH);
ILoadingLayout startLabels = projectListView
.getLoadingLayoutProxy( true, false );
startLabels.setPullLabel( "下拉刷新..." );// 刚下拉时,显示的提示
startLabels.setRefreshingLabel( "正在载入..." );// 刷新时
startLabels.setReleaseLabel( "放开刷新..." );// 下来达到一定距离时,显示的提示
ILoadingLayout endLabels = projectListView.getLoadingLayoutProxy(
false, true );
endLabels.setPullLabel( "上拉加载..." );// 刚下拉时,显示的提示
endLabels.setRefreshingLabel( "正在载入..." );// 刷新时
endLabels.setReleaseLabel( "放开加载..." );// 下来达到一定距离时,显示的
4.监听下拉刷新与上拉加载
projectListView.setOnRefreshListener(new OnRefreshListener2<ListView>(){
@Override
public void onPullDownToRefresh(
PullToRefreshBase<ListView> refreshView) {
projectList.clear();
pageNo = 1;
new FinishRefresh().execute();
queryProjects( pageNo, 10);
}
@Override
public void onPullUpToRefresh(
PullToRefreshBase<ListView> refreshView) {
// TODO Auto-generated method stub
pageNo = pageNo + 1;
new FinishRefresh().execute();
queryProjects( pageNo, 10);
}
});
private class FinishRefresh extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
try {
Thread. sleep(1000);
} catch (InterruptedException e) {
}
return null ;
}
@Override
protected void onPostExecute(Void result){
// adapter.notifyDataSetChanged();
projectListView.onRefreshComplete();
}
}
注意:查询完成后需要用 checkProjectAdapter .notifyDataSetChanged(); 更新数据,而不是每次都重新设置一下数据模型
如
checkProjectAdapter = new CheckProjectAdapter( this, R.layout.project_item, projectList );
projectListView .setAdapter(checkProjectAdapter);
这段代码应该在初始化时设置一次就够了,如果每次都调用setAdapter,会出现加载后滚动条会定位到顶部列表的问题
----
spring mvc+tomcat源码分析视频(链接复制在浏览器打开)
https://study.163.com/course/courseMain.htm?share=2&shareId=480000001919582&courseId=1209399899&_trace_c_p_k2_=6d81bc445e9c462ab8d6345e40f6b0bf