在我的ViewHolder中,我有这个方法,在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);
}
}
但有Item
个没有菜单(即hasMenu()
返回false)但显示menuButton
,反之亦然。
我认为是因为物品回收,因为我有100个物品,只有2个菜单。它打印:
第31项有菜单
第78项有菜单
没关系。但是,在应用程序中,我可以看到其他一些项目正在显示menuButton
,但他们不应该这样做。
显示/隐藏menuButton
时,是否应强制重新显示每个项目?如果是这样,我该怎么做?
答案 0 :(得分:1)
使用 public int getItemViewType(int position)和 public int getItemCount()来扩展两个不同的布局,一个带菜单,另一个没有菜单。