1
나는 Firebase를 사용하여 채팅 앱을 만듭니다. firebase-ui의 recycleView
및 FirebaseRecyclerAdapter
을 사용하여 모든 메시지를 표시합니다. 내 문제는 누군가가 메시지 (아래에서 볼 수 있듯이) 전체 레이아웃이 깜박일 때입니다. Firebase 콘솔에서도 메시지를 변경하면 발생합니다. 내 뷰 홀더에서 내 모델에 따라 하트 이미지보기 만 업데이트합니다. 버전 0.6.2를 사용하고 있지만 1.0.0에서는 여전히 발생합니다.FirebaseRecyclerAdapter가 업데이트되면 내 행을 깜박입니다.
- getItemViewType
- populateViewHolder
- onCreateViewHolder
viewTypes
을 사용하고 있기 때문에 내 어댑터에 대해
, 나는 FirebaseRecyclerAdapter
확장
class ChatMessageOutViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.message_out_content)
TextView messengerView;
@BindView(R.id.message_out_heart)
ImageView heartView;
@BindView(R.id.message_out_heart_likes)
TextView likesView;
@BindView(R.id.message_out_time)
TextView timeView;
ChatMessageOutViewHolder(View v) {
super(v);
ButterKnife.bind(this, v);
}
void apply(final ChatMessage model) {
messengerView.setText(model.content);
likesView.setText(model.likes == null ? "" : String.valueOf(model.likes.size()));
Drawable image = ContextCompat.getDrawable(mContext, R.drawable.ic_fav_1);
if (model.likes != null && model.likes.contains(mUserId)) {
image = ContextCompat.getDrawable(mContext, R.drawable.ic_fav_2);
}
heartView.setImageDrawable(image);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm", Locale.getDefault());
timeView.setText(simpleDateFormat.format(new Date(model.getTimeStamp())));
heartView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mListener != null) {
mListener.onHeartClick(model);
}
}
});
}
}