RecyclerView项目绘制不正确

时间:2016-08-09 11:42:07

标签: android android-recyclerview

在我的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时,是否应强制重新显示每个项目?如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分:1)

使用 public int getItemViewType(int position) public int getItemCount()来扩展两个不同的布局,一个带菜单,另一个没有菜单。