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

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

ListView適配器中的findViewById與View Holder模式

ListView適配器中的findViewById與View Holder模式

千萬里不及你 2019-10-09 15:09:50
我總是用LayoutInflater和findViewById在創(chuàng)建新項目getView的方法Adapter。但是在許多文章中,人們寫道這findViewById非常慢,強烈建議使用“視圖持有者模式”。誰能解釋為什么findViewById這么慢?以及為什么視圖持有者模式更快?如果需要向中添加不同的項目,該ListView怎么辦?我應(yīng)該為每種類型創(chuàng)建類嗎?static class ViewHolderItem1 {    TextView textViewItem;}static class ViewHolderItem2 {    Button btnViewItem;}static class ViewHolderItem3 {    Button btnViewItem;    ImageView imgViewItem;}
查看完整描述

2 回答

?
絕地?zé)o雙

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

ViewHolder模式將創(chuàng)建ViewHolder的靜態(tài)實例,并將其在第一次加載時附加到視圖項,然后在以后的調(diào)用中從該視圖標(biāo)記中檢索它。我們知道getView()方法非常頻繁地被調(diào)用,特別是當(dāng)列表視圖中的許多元素要滾動時,實際上,每次列表視圖項在滾動時可見時都會調(diào)用該方法。


ViewHolder Pattern可以防止findViewById()多次被不必要地調(diào)用,將視圖保持在靜態(tài)引用上,這是節(jié)省一些資源的好模式(尤其是當(dāng)您需要在listview項中引用很多視圖時)。


說得很好 @RomainGuy


ViewHolder也可以并且應(yīng)該用于存儲臨時數(shù)據(jù)結(jié)構(gòu),以避免在getView()中分配內(nèi)存。ViewHolder包含一個char緩沖區(qū),以避免從Cursor獲取數(shù)據(jù)時進行分配。


查看完整回答
反對 回復(fù) 2019-10-09
  • 2 回答
  • 0 關(guān)注
  • 995 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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