listviews에서 뷰어 홀더가있는 인플레이터 문제가 있습니다. 뷰어 홀더를 구현하면 잘못된 인플레이터가 발생하여 메시지가 잘못 표시됩니다. (이미지 10에서 메시지는 나로부터 스크롤을 할 때마다 잘못된 메시지가 바뀌고, 그렇지 않으면 풍선이 무작위로 인 것처럼 다른 메시지가 바뀝니다.)ViewHolder on multiple inflater
나는 2 개의 다른 인플레이터를 가지고 있는데 그것들은 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 : 여기
는 코드 현재, 난 단지 messageHour 및 보낼 메세지 설정static class ViewHolder {
CustomFontTextView messageDateText;
SquareImageView profileImageView;
LinearLayout messageBubbleLayout;
CustomFontTextView messageText;
CustomFontTextView messageHourText;
}
하지만 이미지를 제외한 모든 구성 요소는 내가 생각 해달라고의 LinearLayout (messageBubbleLayout) 내부에 문제가 발생합니다. 당신의 도움이
감사합니다. getView()가 호출 될 때마다 recrating 이후로 나는 그것을 놓쳤습니다. – Warwicky