1缎岗、前言
????????還在為開發(fā)復(fù)雜界面需要寫無數(shù)findViewbyId而感到煩惱嗎澈驼?還在為需要控制界面的顯示隱藏而寫無數(shù)個無用的view而煩惱嗎?現(xiàn)在你可以使用RecyclerView來實現(xiàn)了,只需要簡單的引用就可以實現(xiàn)各種復(fù)雜的界面受葛,從而減少大量無用findViewbyId的書寫悦陋,提高我們的開發(fā)效率蜈彼。具體實現(xiàn)代碼參照demo實現(xiàn),demo中有大致recyclerview 的使用方法:github地址
2俺驶、demo效果圖
????????如上演示圖幸逆,是我們開發(fā)中常見的界面開發(fā),這些我們都可以通過RecyclerView實現(xiàn)暮现,其中單布局和多布局的使用是直接使用了RecyclerView基本封裝就可以實現(xiàn)还绘,對應(yīng)RecyclerView的封裝網(wǎng)上有很多示例,有興趣的可以自行了解栖袋;然后懸浮標簽是直接繼承RecyclerView.ItemDecoration實現(xiàn)的拍顷,而復(fù)雜布局是通過bean來驅(qū)動界面,也就是一個類型的Item即為一個對象塘幅,從而更好的實現(xiàn)數(shù)據(jù)驅(qū)動界面開發(fā)昔案。
3、使用方法
Gradle依賴
dependencies {
? ? ? ? ? ? implementation 'com.even:commonrv:1.0.2'
? ? }
????????如果對該實現(xiàn)方法有興趣的話电媳,可以直接添加上面的gradle依賴踏揣,然后就可以直接使用了,具體的使用方法在github中有說明匾乓,可以參照GitHub的實現(xiàn):https://github.com/panyiyiyi/RecyclerViewDemo
4捞稿、注意事項:
????????單布局的話就直接使用BaseRecyclerAdapter即可簡單實現(xiàn),但是在多布局的時候需要主要的是拼缝,布局的layoutIds的下標需要和getItemType的順序相同括享,? ? 而且getItemType的順序應(yīng)該從0開始,因為在oncreateViewHolder的時候是從layout的數(shù)組中去通過itemType來獲取的珍促,如果不一致必將引起錯誤铃辖。
????????使用懸浮標題的時候直接addItemDecoration()即可,但是這里需要傳入一個標題的ViewType猪叙,這個必須和標題的ViewType相同娇斩;最后即是復(fù)雜布局,這里只要所有的bean都繼承BaseListPagerBean即可穴翩,然后在這里實現(xiàn)各種界面的顯示效果犬第,從而極大的減少findviewByID的使用,只需要控制數(shù)據(jù)源就能夠?qū)崿F(xiàn)界面的顯示效果芒帕,極大的實現(xiàn)了數(shù)據(jù)驅(qū)動界面的思想歉嗓。