如何在Android的RecyclerView中更改另一个项目的状态

时间:2018-09-26 13:07:55

标签: android android-recyclerview

我有一个RecyclerView。每个布局内部都包含展开视图。 用项目单击展开单击项目的视图。如果我单击两个项目,则RecyclerView中将有两个具有扩展视图的项目。我需要通过单击项目关闭其他项目的展开视图。回收站中只有一个具有展开的展开视图的物品。

我该怎么做?

public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    holder.exp.collapse();
    holder.itemView.setOnClickListener(v -> {
        holder.exp.expand();
    });

1 个答案:

答案 0 :(得分:2)

保存先前展开的位置的位置可在列表对象中创建属性,例如boolean isOpen或将其设置为false或true(现在按一下新行的要求)

list.get(prevPosition).setIsOpen(false);

然后

notifyItemChanged(prevPosition);

确保您已经在bindViewHolder中处理了类似的事情

if(list.get(postition).getIsOpen()==false){
//hide your expanded list
}