一吨灭、效果圖
如上圖所示:時(shí)間是一個(gè)布局匪凉,圖片是一個(gè)布局。用recycleview的多布局實(shí)現(xiàn)上邊的效果。
二郭变、具體實(shí)現(xiàn)
1躏尉、首先多布局瞧预,肯定要能區(qū)分出來(lái)是哪個(gè)布局谱净。重寫adapter中的getItemViewType()方法來(lái)區(qū)分,具體實(shí)現(xiàn):
viewtype可以靈活定義噪舀,可以在實(shí)體類中幕垦,也可以通過(guò)其他形式丢氢,根據(jù)position來(lái)區(qū)分。
2先改、為不同的viewType引入其對(duì)應(yīng)的布局疚察,并創(chuàng)建對(duì)應(yīng)的viewholder
說(shuō)明:viewtype最好定義為常量,不要像我這里一樣寫成1仇奶,2貌嫡。
3、綁定數(shù)據(jù)
判斷viewholder屬于哪種该溯,在給對(duì)應(yīng)的控件填充數(shù)據(jù)岛抄。
4、設(shè)置recycleview的樣式
三狈茉、圖片展示為GridView布局樣式
可能會(huì)想夫椭,把LinearLayoutManager換成GridLayoutManager就可以了,來(lái)看下效果
效果圖:
并列三個(gè)item氯庆,時(shí)間占了一個(gè)位置蹭秋,我們不想要這樣的效果,我們想要的是時(shí)間是一個(gè)單獨(dú)的一行堤撵,圖片展示為網(wǎng)格布局的效果仁讨。
這時(shí)候就用上了setSpanSizeLookup了。
作用就是靈活的設(shè)置每行顯示的個(gè)數(shù)实昨。上邊的代碼是根據(jù)adapter中的viewType來(lái)靈活設(shè)置span size的洞豁。運(yùn)行效果如下: