2016-12-12 21 views
0

私は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

ときようにあなたは項目値を変更しないでスクロール –

答えて

3

を使用すると、1つの下に確認し、通常のためだけではなくnewArtical場合のために設定されている場合に作成されます:あなたはモデルクラスであなたの値を設定する必要が

@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()); 
      } 
     }); 
    } 
+0

奇妙な。私はすでにそれを試みたと確信していた。笑働いた!ありがとう。 – Grux

関連する問題