Android ListView下拉刷新、上拉载入更多
找下拉刷新,上拉加載的demo找了好久,踩找到這個相對完美的。所以分享給大家
https://github.com/Maxwin-z/XListView-Android
0. XListView繼承ListView。
1. 下拉刷新組件是ListView的一個Header。在ListView創建時就將這個自定義View塞進去,默認情況是看不到的,所以這個HeaderView的高度初始設置為0。
2. 上拉載入更多組件是Footer,為了確保這個footer在最后(可能會添加多個自定義footer),在用戶調用setAdatper的時候再把這個footer塞進去。
3. 覆寫ListView的onTouchEvent方法,處理各種情況。
4. 用戶松手,啟動mScroller,將header、footer回滾到所需狀態。
5. 添加了用戶下拉、上拉移動delay的效果,類似iOS的行為。
6. 提供了兩個接口:
a) IXListViewListener:??觸發下拉刷新、上拉載入更多
b) OnXScrollListener: 這個和原生的OnScrollListener一樣,但是在mScroller回滾時,也會觸發這里的事件。
碰到的問題:
1. 用戶下拉回推時,不斷修改header的高度,但這時候滾動條指示器的位置還是按老的高度計算的,需要強制調用一下setSelection(0)將ListView滾動到頂部。
貼幾張效果圖:
下拉刷新
上拉載入更多
經測試上面的例子還有一個問題問題:
問題:當最開始數據不能撐滿屏幕的時候,也就是比如有1條,那么將ListView向上拉不會完美刷新,必須將底部的view拉出屏幕才可以刷新
解決方法:在XListView的onTouchEvent方法中,將執行加載操作判斷一下就可以了,大概從280行的位置開始。
新的問題:經網友反饋,修改后的程序存在一些bug,現在已經修改并重新上傳源碼。
注:以上文字內容是在其他文章上修改而來,原文地址:
http://linglong117.blog.163.com/blog/static/277145472012112812812378/
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的Android ListView下拉刷新、上拉载入更多的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大学生送5年外卖还清40万 每天送60单
- 下一篇: Android中保存数据的三种方法