我正在尝试将添加到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());
}
});
}
答案 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());
}
});
}