ビュー、ImageView、TextView などを保存しているビューホルダー内に、プロジェクトの ListView 用にいくつかの ViewHolders を作成しています。
ビューホルダーのクラスでは、アイテムのステータス、IE からビューを構成するメソッドも作成しました。
チャット メッセージのリスト アイテムの場合、メッセージの送信者用の textview を含むビューホルダー、彼のアバターを含む imageview、アプリのリソースからの画像を含む 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 に保持し、メソッドを保持する必要はありませんか?