我在瀏覽器上看到了一個與瀏覽器有關的問題。隨着Viewholder的實現,它得到錯誤的inflater,所以消息顯示錯誤。 (在圖像10.消息不是從我而且錯誤的消息更改,只要我滾動,我成爲7,4或任何其他,如果它隨機需要inflater)ViewHolder on multiple inflater
我有2個不同的inflater,一個爲他們顯示他們的profileImage還有一個給我。
下面是代碼:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
if(messageList.get(position).getSenderRealId() != relevantId)
{
convertView = getLayoutInflater().inflate(R.layout.message_detail_row_my_inflater, parent, false);
}else{
convertView = getLayoutInflater().inflate(R.layout.message_detail_row_their_inflater, parent, false);
}
viewHolder = new ViewHolder();
viewHolder.messageDateText = (CustomFontTextView) findViewById(R.id.messageDateText);
viewHolder.profileImageView = (SquareImageView) findViewById(R.id.profileImageView);
viewHolder.messageBubbleLayout = (LinearLayout) convertView.findViewById(R.id.messageBubbleLayout);
viewHolder.messageText = (CustomFontTextView) viewHolder.messageBubbleLayout.findViewById(R.id.message_text);
viewHolder.messageHourText = (CustomFontTextView) viewHolder.messageBubbleLayout.findViewById(R.id.messageHourText);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder)convertView.getTag();
}
viewHolder.messageText.setText(messageList.get(position).getMessage());
viewHolder.messageHourText.setText(Constants.hourFormat.format(messageList.get(position).getSendTime()));
return convertView;
}
而且viewHolderClass:
static class ViewHolder {
CustomFontTextView messageDateText;
SquareImageView profileImageView;
LinearLayout messageBubbleLayout;
CustomFontTextView messageText;
CustomFontTextView messageHourText;
}
目前,我只設置messageHour和MessageText中,但除了像所有組件都是一個的LinearLayout(messageBubbleLayout),我不認爲內導致問題。
感謝您的幫助
謝謝,我錯過了,因爲我每次調用getView()時都會回顧。 – Warwicky 2014-09-30 15:41:27