![](/img/trans.png)
[英]Why in ViewHolder pattern should the ViewHolder class be static?
[英]ViewHolder Class and OOM Management
使用ViewHolder類是否可以防止泄漏和大堆保留?
class holder
{
WeakReference<ImageView> img;
}
holder holdr = new holder();
holder.img = ...
displayImage(holder.img);
我應該只是將其作為參數傳遞,而不是將其聲明為全局參數嗎?
之所以開發ViewHolder-Pattern,主要是因為當您使用ListAdapter時,由於性能問題,ListAdapter會為每個列表項反復顯示一些具有相同結構的View元素。
您的代碼可能在滾動ListView期間頻繁調用findViewById(),這可能會降低性能。 即使適配器返回膨脹視圖以進行回收,您仍然需要查找元素並進行更新。 重復使用findViewById()的一種方法是使用“視圖持有者”設計模式。
您還應該將ViewHolder類設為靜態
您可以在Googles Dev Page上了解更多信息。
我還建議您觀看此Google IO視頻
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.