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

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -