Android 一個(gè)簡(jiǎn)化RecyclerView復(fù)雜列表(例聊天澜共,朋友圈界面)的褲子

前言#


安利一個(gè)非常強(qiáng)大的框架向叉。 通常簡(jiǎn)化我們的復(fù)雜列表(例如聊天,朋友圈)嗦董,都是通過(guò)封裝adapter母谎,或者重寫(xiě)RecyclerView控件,但是今天這個(gè)框架MultiType 展懈,這一切都改變了。

截取官網(wǎng)的一句話:

MultiType1.png

再來(lái)一張圖:


MultiType.png

基本用法#


我寫(xiě)了一個(gè)簡(jiǎn)單的例子 來(lái)演示 MultiType 的基本用法供璧。樣式來(lái)自于MaterialHome

  • gif

以下整個(gè)界面就是采用recyclerView + MultiType 完成的

multiTypeDemo1.gif

  • 講解

1.靜態(tài)插圖:

w1.png
w2.pngw.png

2.首先讓你的數(shù)據(jù)類實(shí)現(xiàn) MultiType 提供的 Item存崖,代碼片段:

01.png

3.整個(gè)界面分為四層(基礎(chǔ)信息,簡(jiǎn)介睡毒,評(píng)論来惧,推薦叢書(shū)(一個(gè)可橫向滾動(dòng)的布 局))
,從整個(gè)布局來(lái)看演顾,首先你一定先想到在adapter中定義四個(gè)類型供搀,接著重寫(xiě) getItemViewType(),然后在getItemCount()中判斷返回?cái)?shù)據(jù)size钠至,還要再 onCreateViewHolder()中判斷加載哪一個(gè)view等一系列復(fù)雜的代碼....
然而葛虐,使用MultiType,只需要往你的數(shù)據(jù)集合中add數(shù)據(jù)棉钧,并且注冊(cè)屿脐,即可!
代碼片段:

multiTypeDemo.png

2.對(duì)于注冊(cè)是非常關(guān)鍵的一句代碼,注冊(cè)分為兩種方式的诵。一種全局注冊(cè)万栅,一種局部注冊(cè)
我采用的就是局部注冊(cè)西疤,而全局注冊(cè)主要是讓一些普適性的類型能夠全局共用烦粒,例如下拉刷新,上拉加載更多等代赁,當(dāng)然扰她,你也可以使用局部注冊(cè)。
全局注冊(cè)用法請(qǐng)去官方文檔 查看或者看我的例子

3.每一種類型也對(duì)應(yīng)一個(gè)Provider管跺,繼承MultiType提供的ItemViewProvider义黎,類似原生的RecyclerViewAdapter。實(shí)例代碼:

ItemProvider.png

4.其它和adapter的原始寫(xiě)法一樣豁跑,notifyDataSetChanged廉涕,notifyItemRemoved,notifyItemInserted等艇拍。

  • 總結(jié)

MultiType是一個(gè)非常強(qiáng)大的框架狐蜕,這里我只是簡(jiǎn)單的表述它使用起來(lái)真的很輕巧,并且只是使用了一點(diǎn)皮毛卸夕,只有通過(guò)真正的實(shí)踐才能理解其中的奧妙层释。希望后續(xù)能深入源碼來(lái)理解,如果有什么建議或者需要討論的可以直接留言快集。
還有贡羔,MultiType的作者 真的很友善,haha

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末个初,一起剝皮案震驚了整個(gè)濱河市乖寒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌院溺,老刑警劉巖楣嘁,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異珍逸,居然都是意外死亡逐虚,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門谆膳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)叭爱,“玉大人,你說(shuō)我怎么就攤上這事漱病〉臃ィ” “怎么了馒胆?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)凝果。 經(jīng)常有香客問(wèn)我祝迂,道長(zhǎng),這世上最難降的妖魔是什么器净? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任型雳,我火速辦了婚禮,結(jié)果婚禮上山害,老公的妹妹穿的比我還像新娘纠俭。我一直安慰自己,他們只是感情好浪慌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布冤荆。 她就那樣靜靜地躺著,像睡著了一般权纤。 火紅的嫁衣襯著肌膚如雪钓简。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天汹想,我揣著相機(jī)與錄音外邓,去河邊找鬼。 笑死古掏,一個(gè)胖子當(dāng)著我的面吹牛损话,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播槽唾,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼丧枪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了庞萍?” 一聲冷哼從身側(cè)響起拧烦,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎挂绰,沒(méi)想到半個(gè)月后屎篱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體服赎,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡葵蒂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了重虑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片践付。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖缺厉,靈堂內(nèi)的尸體忽然破棺而出永高,到底是詐尸還是另有隱情隧土,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布命爬,位于F島的核電站曹傀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏饲宛。R本人自食惡果不足惜皆愉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望艇抠。 院中可真熱鬧幕庐,春花似錦、人聲如沸家淤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)絮重。三九已至冤寿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绿鸣,已是汗流浹背疚沐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留潮模,地道東北人亮蛔。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像擎厢,于是被迫代替她去往敵國(guó)和親究流。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容