第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android Recyclerview與帶有Viewholder的ListView

Android Recyclerview與帶有Viewholder的ListView

繁花不似錦 2019-11-05 11:24:08
最近,我遇到了RecycleView與Android 5.0一起發(fā)布的android 系統(tǒng),它似乎RecycleView只是一種封裝了傳統(tǒng)ListView視圖,并結(jié)合了ViewHolder模式,該模式促進了視圖的重用,而不是每次都創(chuàng)建視圖。使用的其他好處是RecycleView什么?如果兩者在性能方面都具有相同的效果,為什么還要選擇使用RecycleView`?
查看完整描述

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ā)人員提供了很多控制和功能。


查看完整回答
反對 回復 2019-11-05
?
慕哥6287543

TA貢獻1831條經(jīng)驗 獲得超10個贊

使用的另一個好處RecycleView是動畫,可以用兩行代碼完成


RecyclerView.ItemAnimator itemAnimator = new DefaultItemAnimator();

        recyclerView.setItemAnimator(itemAnimator);

但是小部件仍然是原始的,例如,您不能創(chuàng)建header和footer。


查看完整回答
反對 回復 2019-11-05
?
嚕嚕噠

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ù)中為您分配的。


查看完整回答
反對 回復 2019-11-05
  • 3 回答
  • 0 關(guān)注
  • 1009 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號