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