如今不少android應用程序,好比新浪微博,在聯網刷新內容時,都有一個滑動刷新的ListView,用戶將內容下滑,就會有新的結果呈現。以下圖所示:java
上圖中的功能是一個開源的項目android-pulltorefresh來實現的,咱們能夠利用這個項目來完成這個功能。android
這個項目的源碼託管在github上,地址爲:https://github.com/johannilsson/android-pulltorefreshgit
下面來介紹如何使用:github
滑動刷新其實就用到一個類PullToRefreshListView,它是ListView的子類,相應用到的layout文件爲pull_to_refresh_header.xml。也就是說要用滑動刷新,須要將上面的類和xml及一些圖片下載下來放到本身的工程中調用。ide
咱們在用到這個類的activity的layout中加上以下代碼:code
<!-- The PullToRefreshListView replaces a standard ListView widget. --> <com.markupartist.android.widget.PullToRefreshListView android:id="@+id/android:list" android:layout_height="fill_parent" android:layout_width="fill_parent" />
在activity中加入下面的代碼:
// Set a listener to be invoked when the list should be refreshed. ((PullToRefreshListView) getListView()).setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh() { // Do work to refresh the list here. new GetDataTask().execute(); } }); private class GetDataTask extends AsyncTask<Void, Void, String[]> { ... @Override protected void onPostExecute(String[] result) { mListItems.addFirst("Added after refresh..."); // Call onRefreshComplete when the list has been refreshed. ((PullToRefreshListView) getListView()).onRefreshComplete(); super.onPostExecute(result); } }
以上代碼分別是設置刷新監聽器和後臺任務執行。
本身原來寫了一個例子,不當心刪除了,就不重寫貼給你們了。xml
另外,我的感受這個滑動如今不是很靈敏,有些卡。圖片