我創建一些ViewHolders爲我的項目的ListViews,在視圖內我存儲視圖,ImageViews,TextViews和更多。Android性能問題與ViewHolder
在viewholder的課我還創建方法來配置從項目的狀態,IE的觀點:
對於聊天消息列表項,我將有一個viewholder與消息的發送者,一個ImageView的一個TextView用他的頭像,一個包含來自應用程序資源的圖像的圖像視圖,以將該消息標識爲音頻消息,視頻消息,文本消息等等。 在同一ViewHolder我也得到了類似的方法:
configureViewFromMessage(MessageSender sender, Message message)
用於配置從發件人和郵件POJO模型的頭像,發送者姓名和消息類型。
編輯: 我添加了一個示例適配器來解釋這個更好。
public View getView(int position, View convertView, ViewGroup viewGroup) {
ContactViewHolder cvh;
if (convertView != null) {
cvh = (ContactViewHolder) convertView.getTag();
} else {
convertView = InflateUtils.inflate(mContext, R.layout.contact_list_item);
convertView = InflateUtils.inflate(mContext, R.layout.contact_list_item_container);
cvh = new ContactViewHolder(innerView);
convertView.setTag(cvh);
}
/* Getting message */
Message message = getItem(position);
MessageSender sender = message.getSender();
/* View settings */
cvh.configureViewFromMessage(sender, message, mContext);
/* Context is used to reach App's Resources */
return convertView;
}
的問題是:
- 有ViewHolder內這些方法(可能是許多)可能導致性能問題?
- 我應該在ViewHolders中只保留嚴格要求的字段和沒有方法嗎?
請顯示您的自定義適配器 –