android - RecyclerView BackgroundColor -
i used recyclerview
display text data. got logic in select different cards.
i change appearance of selected cards.
public void toggleselection(int pos) { recyclerview.viewholder viewholder = recview.findviewholderforposition(pos); if (selecteditems.get(pos, false)) { selecteditems.delete(pos); viewholder.itemview.setbackgroundcolor(color.white); } else { selecteditems.put(pos, true); viewholder.itemview.setbackgroundcolor(color.green); } notifyitemchanged(pos); }
if use code works. onclick event triggers code , card background color changes green.
so here problem: scrolling down shows other cards in same relative position (but further down in list) same background color if not selected; selecting first card , scrolling down eighth card top visible card shows eighth card highlighted.
you need set colors explicitly in onbindviewholder()
method.
a recycler view name suggests recycles views, 0th item recycled 8th item in case. use same view holder created using oncreateviewholder()
method.and each time 1 of them comes view onbindviewholder()
method called.
suggest create additional boolean field in data model, telling whether you've highlighted view or not. should toggle in toggleselection()
. in onbindviewholder()
check value of field , set color accordingly.
Comments
Post a Comment