我有一个RecyclerView。每个布局内部都包含展开视图。 用项目单击展开单击项目的视图。如果我单击两个项目,则RecyclerView中将有两个具有扩展视图的项目。我需要通过单击项目关闭其他项目的展开视图。回收站中只有一个具有展开的展开视图的物品。
我该怎么做?
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.exp.collapse();
holder.itemView.setOnClickListener(v -> {
holder.exp.expand();
});
答案 0 :(得分:2)
保存先前展开的位置的位置可在列表对象中创建属性,例如boolean isOpen或将其设置为false或true(现在按一下新行的要求)
list.get(prevPosition).setIsOpen(false);
然后
notifyItemChanged(prevPosition);
确保您已经在bindViewHolder中处理了类似的事情
if(list.get(postition).getIsOpen()==false){
//hide your expanded list
}