android開發(3):列表listview的實現 | 下拉刷新

APP裏面的列表太常用了,系統提供的listview或grideview可以做到。另外,我希望這個列表能夠下拉時觸發刷新,於是考慮使用封裝了這個功能的開源項目,這裏介紹這個:
https://github.com/Yalantis/Phoenix

這是一個支持下拉刷新的控件,裏面包括了ListView。

(1)引入下拉刷新庫

同樣,先引入這個庫,在app/build.gradle的dependencies中增加一行:

implementation 'com.yalantis:phoenix:1.2.3'

(2)xml中設計下拉刷新控件

然後在界面中使用這個控件,比如“知音”這個APP是在Fragment中使用,部分xml是這樣的:
使用PullToRefreshView的xml

對於它的使用,你也可以參考它在github上的說明。

(3)代碼中使用下拉刷新控件

在代碼中,處理觸發刷新的事件:
使用pulltorefreshview的代碼1

至此,界面就出現了一個能夠下拉刷新的控件。但是,數據(包括刷新出來的數據)最終要在ListView上顯示出來,所以,下一步就是使用ListView。

(4)使用ListView來顯示內容

跟iOS的tableview一樣,ListView也是由一個個cell(item)組成的,需要設計這個cell怎麼顯示,於是,可以寫一個xml,比如叫tianya_listcell.xml:
創建listview的cell的xml1
創建listview的cell的xml2
創建listview的cell的xml3

這個xml是cell顯示的樣式,除了樣式,還要有內容。ListView從適配器取內容,所以要寫一個適配器類來提供內容(重寫某個方法)。

先定義一個內容類,這裏簡單演示,只設置一個圖片。定義的類是這樣的:
listview適配器使用的內容類

最終要使用這個內容類,生成一個list,再設置給listview的適配器。

然後,寫listview的適配器,由它提供繪製內容:
listview的適配器
listview的適配器2

最後,使用listview:
使用listview

總體的思路是,listview向adapter詢問繪製多少個item(所以要給adapter設置好數據列表),再問adapter索要繪製的view(這個view從xml中生成,就是一個item),我們可以重寫這個getView的方法,從而控制顯示什麼樣的item(xml定義了佈局,除了佈局,還要設置具體的顯示內容,就在這個函數裏面設置)。

演示的效果是這樣的:
演示效果圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章