In my ViewHolder, I have this method, that is called in the adapter when onBindViewHolder
:
protected void bindViews(Item item) {
dateTextView.setText(item.getDate());
titleTxtView.setText(item.getTitle());
if (item.hasMenu()) {
Log.d("tag", "Item " + item.getId() + " has menu");
menuButton.setVisibility(VISIBLE);
} else {
menuButton.setVisibility(INVISIBLE);
}
}
But there are Item
s that doesn't have menu (that is hasMenu()
returns false) but menuButton
is shown and vice versa.
I think is because the item recycling because I have 100 items and just 2 have menu. It prints:
Item 31 has menu
Item 78 has menu
That's ok. However, in the app I can see that some other items are showing the menuButton
and they shouldn't.
Should I force repaint each item when show/hide the menuButton
? If so, how can I do it?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…