Android RecyclerView适配器 - 按视图类型隐藏/过滤项目

时间:2018-03-09 04:47:31

标签: android android-recyclerview

所以我有一个3 ViewHolder类型的适配器。

private static final int TYPE_M = 0;
private static final int TYPE_H = 1;
private static final int TYPE_T= 2;

我希望能够通过视图持有者类型过滤RecyclerView中的项目。这样做的任何标准方法,或者我必须使用类似循环的东西并使项目不可见?

项目视图类型选择:

@Override
public int getItemViewType(int position) {
    MyItem myItem = listitems.get(position);
    if (myItem.getType() == "M"){
        return TYPE_M;
    }
    else if (myItem.getType() == "H"){
        return TYPE_H;
    }
    else if (myItem.getType() == "T"){
        return TYPE_T;
    }
}

1 个答案:

答案 0 :(得分:0)

尝试使用displayList过滤列表显示,dataList包含所有元素。

public void filterList(int viewType) {
    displayList.clear();
    notifyDataSetChanged();
    for (int i = 0; i < dataList.size(); i++) {
        if (getItemViewType(i) == viewType){
            displayList.add(dataList.get(i));
        }
    }
    notifyDataSetChanged();
}