Java Recyclerview:隐藏项目而不将其从ArrayList中删除
我已经搜索了很长一段时间,但没有找到正确的答案: 有没有一种方法可以在不从基础ArrayList中删除项目的情况下从RecyclerView中删除项目? 我想添加一个功能,当某个条件为真时,从列表中临时隐藏项目。我以后还需要这些项目,但是管理两个单独的ArrayList似乎过于复杂。 如果我将适配器内项目的可见性设置为Java Recyclerview:隐藏项目而不将其从ArrayList中删除,java,android,arraylist,android-recyclerview,Java,Android,Arraylist,Android Recyclerview,我已经搜索了很长一段时间,但没有找到正确的答案: 有没有一种方法可以在不从基础ArrayList中删除项目的情况下从RecyclerView中删除项目? 我想添加一个功能,当某个条件为真时,从列表中临时隐藏项目。我以后还需要这些项目,但是管理两个单独的ArrayList似乎过于复杂。 如果我将适配器内项目的可见性设置为gone,则项目所在的位置存在可见间隙,因此这不是解决方案 有什么方法可以避免管理两个单独的ArrayList吗?您有一个对象类型的ArrayList 您有一个对象类型的model
gone
,则项目所在的位置存在可见间隙,因此这不是解决方案
有什么方法可以避免管理两个单独的ArrayList吗?您有一个对象类型的ArrayList 您有一个对象类型的model/pojo类 当从JsonResponse迭代JsonData时,只需在对象类型模型类中传递布尔值true/false。要显示的数据将其设置为true或false,以后可以将模型类的“false值设置为true”
希望这能起作用。我认为您必须实际从数据模型中删除。否则,您要么像您所说的那样以空行结束,要么当您滚动时,“隐藏的”回收元素将变得混乱 从Arraylist中删除并不意味着不能(临时)添加另一个列表来存储已删除的项 例如,在适配器中定义它
private List<Item> removed = new ArrayList<>();
public void remove(int position) {
removed.add(items.get(position));
items.remove(position);
notifyDataSetChanged();
}
private List removed=new ArrayList();
公共无效删除(内部位置){
删除。添加(项目。获取(位置));
项目。移除(位置);
notifyDataSetChanged();
}
如果您需要更好的关于已删除哪些项的功能,那么Hashmap可能会更好。在我的例子中,我使用的是
getApplicationContext()
而不是getContext
或此
当您将项目可见性设置为GONE
时,是否可以发布RecyclerView的屏幕截图?请发布您的适配器代码。我想问题是关于隐藏整行,而不是单个视图。执行适配器布局(row\u项目)在从服务器加载数据之前,在活动中映射并在recyclerview/Listview中设置适配器。获取数据后,不要执行“adapter.notifyDataSetChanged”,这样您的listview将为空/隐藏。无论何时,只要显示视图,就执行notifyDataSetChanged。为什么在获取数据后不通知适配器?另外,仍然不确定阻止视图膨胀为行的行或removed.add(items.remove(position))代码>