1. 程式人生 > >RecyclerView新增HeaderView和FooterView

RecyclerView新增HeaderView和FooterView

好了,現在問題來了,假設我們現在已經完成了RecyclerView的編寫,忽然有個需求,需要在列表上加個HeaderView,此時我們該怎麼辦呢?開啟我們的Adapter,然後按照我們上述的原理,新增特殊的ViewType,然後修改程式碼完成。這是比較常規的做法了,但是有個問題是,如果需要新增多個viewType,那麼可能我們的Adapter需要修改的幅度就比較大了,比如getItemType、getItemCount、onBindViewHolder、onCreateViewHolder等,幾乎所有的方法都要進行改變。如果一個專案中多個RecyclerView都需要在其列表中新增headerView,想想都頭大了,所以直接改Adapter的程式碼是非常不划算的,最好能夠設計一個類,可以無縫的為原有的Adapter新增headerView和footerView。我也是看到了鴻洋大神的這篇文章才有了收獲,思路是通過類似裝飾者模式,去設計一個類,增強原有Adapter的功能,使其支援addHeaderView和addFooterView。這樣我們就可以不去改動我們之前已經完成的程式碼,靈活的去擴充套件功能了。幸好大學的課本沒丟,又翻出出來,重新看看裝飾者模式,哈哈~~