滚动

时间:2016-12-12 04:38:42

标签: android android-recyclerview

我正在尝试将添加到recyclerview的新项目加粗,并在单击后将项目设置为普通字体。一切正常但是我的问题在用户滚动后到达,所有项目都设置回粗体。当我创建适配器时,项目以他们应该的方式显示,新项目作为正常的粗体和单击项目,直到用户滚动并且滚动视图的项目返回到粗体。如何将其移至用户滚动的位置并且不重置字体?

@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
    if (articles.get(position).isNewArticle()) {
        holder.txtHeader.setTypeface(null, Typeface.BOLD);
    }
    holder.txtHeader.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                articles.get(holder.getAdapterPosition()).setNewArticle(false);
                holder.txtHeader.setTypeface(null, Typeface.NORMAL);
                notifyItemChanged(holder.getAdapterPosition());
           }
    });
}

1 个答案:

答案 0 :(得分:3)

在滚动时,将创建新的持有人项目,您只为新的艺术案例设置而不是正常情况,请查看下面的一个:

@Override
    public void onBindViewHolder(final ViewHolder holder, int position) {
        if (articles.get(position).isNewArticle()) {
            holder.txtHeader.setTypeface(null, Typeface.BOLD);
        }else{
            holder.txtHeader.setTypeface(null, Typeface.NORMAL);
        }
        holder.txtHeader.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                articles.get(holder.getAdapterPosition()).setNewArticle(false);
                holder.txtHeader.setTypeface(null, Typeface.NORMAL);
                notifyItemChanged(holder.getAdapterPosition());
            }
        });
    }