本著不依賴第三方庫的想法戈盈,所以才打算自己利用谷歌出的SwipeRefreshLayout封裝一套下拉刷新奠衔、上拉加載更多的框架谆刨,也是為了方便自己。
SwipeRefreshLayout的用法在這里就不多說了归斤,主要的就是上拉加載更多痊夭,?(?òωó?)?其實(shí)本質(zhì)就是通過GetItemType來做判斷的。
那怎么做才能做到跨行呢脏里,
大家都知道RecyclerView 都需要設(shè)置一個(gè)LayoutManager來規(guī)定RecyclerView展示的列表的布局方式她我,針對網(wǎng)格布局GridLayoutManager我們來看一下,
通過源碼我們可以看到有這么一個(gè)跨越的方法迫横,
?(?òωó?)?對番舆,沒錯(cuò),這個(gè)就是跨行的關(guān)鍵矾踱,那么如何做到跨行呢恨狈?繼續(xù)跟蹤SpanSizeLookup,看看這個(gè)是什么鬼.....
可以看到它是一個(gè)靜態(tài)抽象類,包含有一個(gè)getSpanSize方法呛讲,很明顯禾怠,這個(gè)就是用來做跨行用的。
接下來就好辦了贝搁。
那什么時(shí)候?qū)懣缧新鹗希衷撊绾未_定單獨(dú)自己想要的FooterView跨行呢。
這里首先感謝一下萬能的網(wǎng)絡(luò)大神徘公,我這里主要是看了https://github.com/EvilBT/SherlockAdapter
這個(gè)項(xiàng)目中的實(shí)現(xiàn)方法牲证,感覺其他框架應(yīng)該都是基于此方法實(shí)現(xiàn)的吧....
好了不討論了哮针,接下來就動(dòng)手實(shí)現(xiàn)的代碼吧关面。
只需在Adapter里面重寫onAttachedToRecyclerView();方法即可。這里的判斷數(shù)據(jù)是否為空貌似沒什么必要哈哈O(∩_∩)O
好了十厢,小伙伴們?nèi)绻戳粟s緊動(dòng)起手來吧等太,告別多余的框架。蛮放。缩抡。