我正在为我的项目的 ListViews 创建一些 ViewHolders,在我正在存储视图、ImageViews、TextViews 等的 viewholders 内。
在视图持有者的类中,我还创建了从项目状态 IE 配置视图的方法:
对于聊天消息列表项,我将有一个带有消息发送者的 textview 的 viewholder,一个带有他的头像的 imageview,一个包含来自 App 资源的图像的 imageview,以将消息标识为音频消息、视频消息、文本消息和很快。在同一个 ViewHolder 中,我还有以下方法:
configureViewFromMessage(MessageSender sender, Message message)
从 Sender 和 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 中保留严格要求的字段而没有方法吗?