效果
老規(guī)矩,先來看看效果圖
沒錯,我又入坑了,又重新做了個 Gank 客戶端,因為之前那個代碼寫得太爛了,這次有好好的考慮了下架構(gòu)之類的事,代碼應(yīng)該會更容易讀懂了點了,吧。哈哈,再次歡迎來 star 交流哈。
上面的截圖里有注釋解析了,稍微認(rèn)真點看看 log 的內(nèi)容哈,看看是不是你需要的需求。
Fragment懶加載
如果想直接看代碼,直接跳到最下面的代碼部分和使用介紹即可,如果感興趣,可以慢慢往下看看我的嘮叨。
之前寫過一篇 Fragment懶加載和ViewPager的坑,里面分析了 Fragment 結(jié)合 ViewPager 使用時會碰到的一些情況,以及為什么要用懶加載,如何用,感興趣的也可以再回去看看。
后來發(fā)現(xiàn),我在那篇博客里封裝的 Fragment 基類不足以滿足大家的懶加載需求,所以決定重新來封裝一次,這次封裝的支持以下的功能:
1.支持?jǐn)?shù)據(jù)的懶加載并且只加載一次
2.提供 Fragment 可見與不可見時回調(diào),支持你在這里進行一些 ui 操作,如顯示/隱藏加載框
3.支持 view 的復(fù)用,防止與 ViewPager 使用時出現(xiàn)重復(fù)創(chuàng)建 view 的問題
第一點應(yīng)該是比較需要且常用的一點,之前那篇博客里沒有考慮到這點應(yīng)用場景是我的疏忽。稍微講解一下,有些時候,我們打開一個 Fragment 頁面時,希望它是在可見時才去加載數(shù)據(jù),也就是不要在后臺就開始加載數(shù)據(jù),而且,我們也希望加載數(shù)據(jù)的操作只是第一次打開該 Fragment 時才進行的操作,以后如果再重新打開該 Fragment 的話,就不要再重復(fù)的去加載數(shù)據(jù)了。
具體點說,F(xiàn)ragment 和 ViewPager 一起用時,由于 ViewPager 的緩存機制,在打開一個 Fragment 時,它旁邊的幾個