FirebaseRecyclerAdapter更新时闪烁我的行

埃斯德拉斯

我使用火力地堡创建一个聊天应用。我正在使用recycleViewand FirebaseRecyclerAdapterfrom firebase-ui来显示所有消息。我的问题是当有人像消息(你可以见下文)的整个布局闪烁。如果我也更改了Firebase控制台上的消息,则会发生这种情况。在我看来,持有人,我只用我的模型,根据更新,心脏图像视图。我使用的是0.6.2版,但仍然在1.0.0版上发生。

关于我的适配器,我谨向FirebaseRecyclerAdapter因为我用viewTypes我已经重写了以下方法:

  • getItemViewType
  • populateViewHolder
  • onCreateViewHolder

在此处输入图片说明

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);
                }
            }
        });
    }
}
埃斯德拉斯

我想通了!!这不是FirebaseRecyclerAdapter上的错误。听起来像是RecyclerView的默认行为。为了解决它只需添加后设置我的本地参考以下行。

RecyclerView.ItemAnimator animator = mRecyclerView.getItemAnimator();
if (animator instanceof SimpleItemAnimator) {
    ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章