3 回答

TA貢獻1811條經(jīng)驗 獲得超6個贊
隨著Android Lollipop的出現(xiàn),RecyclerView正式問世。與ListView相比, RecyclerView更加強大,靈活并且具有重大改進。我將嘗試為您提供詳細的了解。
1)ViewHolder模式
在ListView中,建議使用ViewHolder模式,但這絕不是強制性的。如果是RecyclerView,則使用RecyclerView.ViewHolder類是強制性的。這是ListView和RecyclerView之間的主要區(qū)別之一。
它使RecyclerView中的事情變得更加復雜,但是我們在ListView中面臨的許多問題都得到了有效解決。
2)布局管理器
這是RecyclerView的另一項重大改進。在ListView中,唯一可用的視圖類型是垂直ListView。沒有正式的方法甚至可以實現(xiàn)水平ListView。
現(xiàn)在使用RecyclerView,我們可以
i)LinearLayoutManager-支持垂直和水平列表,
ii)StaggeredLayoutManager-支持像交錯列表這樣的Pinterest,
iii)GridLayoutManager-支持顯示在Gallery應用程序中看到的網(wǎng)格。
最好的是,我們可以根據(jù)需要動態(tài)地執(zhí)行所有這些操作。
3)項目動畫師
ListViews缺少對好的動畫的支持,但是RecyclerView給它帶來了一個全新的維度。使用RecyclerView.ItemAnimator類,對視圖進行動畫處理變得非常容易和直觀。
4)物品裝飾
對于ListViews,動態(tài)裝飾項目(例如添加邊框或分隔線)從未如此簡單。但是在使用RecyclerView的情況下,RecyclerView.ItemDecorator類為開發(fā)人員提供了巨大的控制權(quán),但使事情變得更加耗時和復雜。
5)OnItemTouchListener
借助 ListView的AdapterView.OnItemClickListener接口,攔截ListView上的項目單擊非常簡單。但是RecyclerView通過RecyclerView.OnItemTouchListener為其開發(fā)人員提供了更多的功能和控制權(quán),但它使開發(fā)人員的工作變得有些復雜。
簡而言之,RecyclerView比ListView更具可定制性,并為其開發(fā)人員提供了很多控制和功能。

TA貢獻1831條經(jīng)驗 獲得超10個贊
使用的另一個好處RecycleView是動畫,可以用兩行代碼完成
RecyclerView.ItemAnimator itemAnimator = new DefaultItemAnimator();
recyclerView.setItemAnimator(itemAnimator);
但是小部件仍然是原始的,例如,您不能創(chuàng)建header和footer。

TA貢獻1784條經(jīng)驗 獲得超7個贊
好吧,我挖這么點點發(fā)現(xiàn)比爾飛利浦這些寶石的文章上RecycleView
RecyclerView可以做的比ListView還要多,但是RecyclerView類本身的責任比ListView少。開箱即用,RecyclerView不會:
在屏幕上放置項目
動畫視圖
處理滾動以外的任何觸摸事件
所有這些東西都放入了ListView,但是RecyclerView使用協(xié)作器類來完成這些工作。
您創(chuàng)建的ViewHolders也更加強大。它們是子類 RecyclerView.ViewHolder,它具有許多方法RecyclerView 用途。ViewHolders知道他們當前綁定到的位置,以及哪個項目ID(如果有)。在此過程中,ViewHolder 已被封為爵士。過去,ListView的工作是保留整個項目視圖,而ViewHolder僅保留其中的一小部分。
現(xiàn)在,ViewHolder保留了該ViewHolder.itemView 字段中的所有內(nèi)容,這是在ViewHolder的構(gòu)造函數(shù)中為您分配的。
- 3 回答
- 0 關(guān)注
- 1009 瀏覽
添加回答
舉報