Recyclerview:隐藏项目而不从ArrayList中删除它们

时间:2017-09-16 14:19:44

标签: java android arraylist android-recyclerview

我一直在寻找那个并且找不到合适的答案:

有没有办法从RecyclerView中删除一个Item而不从底层ArrayList中删除它? 我想添加一个功能,以便在某个条件为真时暂时隐藏List中的Items。我以后仍然需要这些项目,但管理2个单独的ArrayList似乎过于复杂。 如果我将适配器内的项目的可见性设置为gone,则项目的可见间隙可能存在,因此这不是解决方案。

有什么方法可以避免管理2个独立的ArrayLists吗?

3 个答案:

答案 0 :(得分:0)

你有一个对象类型的ArrayList 你有一个Object type

的model / pojo类

从JsonResponse迭代JsonData时,只需在对象类型Model类中传递boolean值true / false。您要显示的数据使其成为假,否则您可以将' false值设置为true'到你的Model类。

希望这会奏效。

答案 1 :(得分:0)

我认为您必须从数据模型中删除。否则,你要么最后得到空行,如你所说,或者当你滚动时,“隐藏”的回收元素会混乱。

仅仅因为你从Arraylist中删除并不意味着你不能添加另一个列表(暂时)存储被删除的项目。

例如,在适配器

中定义它
private List<Item> removed = new ArrayList<>();

public void remove(int position) {
    removed.add(items.get(position));
    items.remove(position);
    notifyDataSetChanged();
}

如果您需要更好的功能来了解已删除的项目,那么Hashmap可能会更好。

答案 2 :(得分:0)

就我而言,我使用的是getApplicationContext()而不是getContextthis